Olá pessoal!
Pessoal, como faço o relacionamento sendo que, um Usuario pode ter vários DadosUsuario?
@Entity
@Table(name="usuario", schema="teste")
public class Usuario implements Serializable{
@Column(name = "nome")
private String nome = "";
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@OneToMany(cascade=CascadeType.ALL, mappedBy="usuario")
private Usuario usuarios;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Usuario getUsuarios() {
return usuarios;
}
public void setUsuarios(Usuario usuarios) {
this.usuarios = usuarios;
}
}
@Entity
@Table(name="dadosusuario", schema="teste")
public class DadosUsuario implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name="dado")
private String dado = "";
@Column(name="usuario_id")
private int usuario_id = 0;
@ManyToOne
@JoinColumn(name="usuario_id", nullable=false)
private DadosUsuario dadosusuarios;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getDado() {
return dado;
}
public void setDado(String dado) {
this.dado = dado;
}
public int getUsuario_id() {
return usuario_id;
}
public void setUsuario_id(int usuario_id) {
this.usuario_id = usuario_id;
}
}[/code]
tenho o mapeamento:
[code]<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/teste</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
<mapping class="modelo.Usuario"/>
<mapping class="modelo.DadosUsuario"/>
</session-factory>
</hibernate-configuration>[/code]
[code]Exception in thread "main" java.lang.ExceptionInInitializerError
at controle.StartHibernate.<clinit>(StartHibernate.java:24)
at modelo.OperacoesBanco.pesquisaTeste(OperacoesBanco.java:85)
at controle.Main.main(Main.java:21)
Caused by: org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: modelo.Usuario.usuarios
at org.hibernate.cfg.annotations.CollectionBinder.getCollectionBinder(CollectionBinder.java:264)
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1455)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:754)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:534)
Erro na classe StartHibernate
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:286)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at controle.StartHibernate.<clinit>(StartHibernate.java:20)
... 2 more
Java Result: 1