java queshaobao,java – org.hibernate.AnnotationException:@OneToOne或@ManyToOne on entities.Ques#tion....

我试图用这个测试项目首次使用hibernate实现设置JPA。进入以下错误:

Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: ExamModulePu] Unable to build EntityManagerFactory

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:924)

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899)

at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)

at service.tests.ExamServiceTest.main(ExamServiceTest.java:18)

Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on entities.Question.examId references an unknown entity: long

at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:109)

at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1536)

at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1457)

at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1365)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1756)

at org.hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:96)

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)

这些是我的实体:

@Entity

public class Exam implements Serializable {

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

private long id;

private String name;

private int numQuestions;

private int minutesAllotted;

private Date startDate;

private Date endDate;

@OneToMany(mappedBy = "examId", orphanRemoval = true)

private List questionList;

// Getters and setters here..

}

@Entity

public class Question implements Serializable{

@Id

@GeneratedValue(strategy=GenerationType.AUTO)

private long id;

@ManyToOne

private long examId;

private int points;

private int timeLimit;

private String text;

private String category;

@Embedded

private List answerList;

}

@Embeddable

public class Answer implements Serializable {

private int optionNumber;

private String text;

private boolean correct;

}

这是我的persistence.xml看起来像:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"

version="2.0">

transaction-type="RESOURCE_LOCAL">

org.hibernate.ejb.HibernatePersistence

entities.Exam

entities.Question

false

我没有创建任何表,而是依赖于hibernate.hb2mddl.auto这样做。但是我相信我的错误在发生之前就会发生,因为它不能生成持久化单元。任何想法我做错了什么?我确保我只导入javax.persistence。*;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值