我把这个POJO映射到我的MySQL数据库:
@Entity
@Table(name = "participantespresentes", catalog = "tagit")
public class Participantespresentes implements java.io.Serializable {
private ParticipantespresentesId id;
private Evento evento;
private Usuario usuario;
private boolean status;
public Participantespresentes() {
}
public Participantespresentes(ParticipantespresentesId id, Evento evento, Usuario usuario, boolean status) {
this.id = id;
this.evento = evento;
this.usuario = usuario;
this.status = status;
}
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "idUsuario", column =
@Column(name = "idUsuario", nullable = false)),
@AttributeOverride(name = "idEvento", column =
@Column(name = "idEvento", nullable = false))})
public ParticipantespresentesId getId() {
return this.id;
}
public void setId(ParticipantespresentesId id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idEvento", nullable = false, insertable = false, updatable = false)
public Evento getEvento() {
return this.evento;
}
public void setEvento(Evento evento) {
this.evento = evento;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idUsuario", nullable = false, insertable = false, updatable = false)
public Usuario getUsuario() {
return this.usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
@Column(name = "status", nullable = false)
public boolean isStatus() {
return this.status;
}
public void setStatus(boolean status) {
this.status = status;
}
}
每当我尝试使用hibernate执行任何操作时,都会启动此异常:
Initial SessionFactory creation failed.org.hibernate.AnnotationException: Collection has neither generic type or OneToMany.targetEntity() defined: com.bytecode.entities.Evento.participantespresentes
任何帮助?
祝你好运, Valter Henrique。
答案 0 :(得分:5)
异常消息非常清楚 - Hibernate无法确定集合Evento.participantespresentes
的元素类型。您需要将其声明为通用(即List<Participantespresentes>
)。
答案 1 :(得分:0)
问题不在Participantespresentes中,而是在Evento类中。你有一个名为participantespresentes的属性,但它没有正确映射。如果没有发现问题,请发布Evento代码。