Olá pessoal!
Estou iniciando em web com Java.
Estou tentando fazer o relacionamento OneToMany com JPA e Hibernate, mas não estou conseguindo.
Quero que na classe pai eu consiga ver todos os filhos, porém a unica coisa que consegui fazer foi mostrar os pais na classe filho (MantToOne).
Alguém conhece algum site ou arquivo onde eu possa pegar essa informação?
Desde já agradeço pela ajuda!
Abraço a todos!
Jarf
Setembro 26, 2008, 8:05am
#2
rod
Setembro 26, 2008, 8:12am
#3
O básico seria ± assim:
public class Pai {
private Long id;
@OneToMany(mappedBy = "pai")
private List<Filho> filhos = new ArrayList<Filho>();
}
public class Filho {
private Long id;
@ManyToOne
@JoinColumn(name = "PAI_ID")
private Pai pai;
}
Não estou conseguindo exibir os dados no jsf.
Agradeço mto se alguém puder dar uma olhada no código!
@Entity
public class Funcionario {
@Id
private int id;
private String nome;
@OneToMany(mappedBy = "funcionario")
private List<Bonus> bonusList = new ArrayList<Bonus>();
public List<Bonus> getBonusList() {
return bonusList;
}
public void setBonusList(List<Bonus> bonusList) {
this.bonusList = bonusList;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
@Entity
public class Bonus {
@Id
private int id;
@ManyToOne
@JoinColumn(name="funcionario_id")
private Funcionario funcionario;
private String tipo;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
}
public class FuncionarioMB {
private Funcionario funcionario = new Funcionario();
private DataModel funcionarios;
public DataModel getFuncionarios() {
try {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jaybird");
EntityManager em = emf.createEntityManager();
Query q = em.createQuery("select f from Funcionario as f");
List<Funcionario> r = (ArrayList<Funcionario>) q.getResultList();
funcionarios = new ListDataModel(r);
em.close();
emf.close();
} catch (Exception e) {
e.printStackTrace();
}
return funcionarios;
}
public Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
}
}
Como faço para exibir os dados no JSF?
Os dados dos funcinarios aparecem, mas não sei como exibir os bonus! :?
<f:view>
<h:form>
<f:loadBundle basename="text.textos" var="textos" />
<h:dataTable value="${funcionarioMB.funcionarios}" var="funcionario">
<h:column>
<f:facet name="header"> Nome </f:facet>
<h:outputText value="${funcionario.nome}"> </h:outputText>
</h:column>
</h:dataTable>
<h:messages />
</h:form>
</f:view>
Olá pessoal!
Alguém sabe como fazer isso?
Obrigado.
exemplo 1:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fk_idatividadesatv")
public Atividades getAtividades() {
return this.atividades;
}
public void setAtividades(Atividades atividades) {
this.atividades = atividades;
}
Exemplo 2:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "pessoas")
public Set<AtividadesPessoas> getAtividadesPessoases() {
return this.atividadesPessoases;
}
public void setAtividadesPessoases(
Set<AtividadesPessoas> atividadesPessoases) {
this.atividadesPessoases = atividadesPessoases;
}
Olá Michel_Sancovich!
Minhas classes estão erradas?
Como eu faço para exibir o (Set) no jsf?
Grato.
Olá,
Alguém pode me dar uma ajudar nisso?
Obrigado!