Abh*_*hek 5 hibernate jpa playframework
我是一个有游戏框架的初学者.关于JPA和Play框架中的映射的问题,
我有一个学生表和一个由一对一关系约束的导师表.
学生表:
id, name, class, grade
Run Code Online (Sandbox Code Playgroud)
导师表:
id, name, department, student_id
Run Code Online (Sandbox Code Playgroud)
在上文中,导师可能有也可能没有绑定他/她的学生.我正在使用一对一的映射制作导师模型,
@OneToOne
@JoinColumn(name="fk_student_id", referencedColumnName="id")
private student Student;
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,我得到了一个
发生JPA错误(无法构建EntityManagerFactory):属性映射列数错误:models.Mentor.student类型:models.Student.
我确信我已将所有学生字段映射如下,
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@Column(name="name")
private String name;
@Column(name="class")
private String cls;
@Column(name="grade")
private String grade;
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
谢谢你的时间.
问候,阿比
您确定这是 Play Framework 的工作代码吗?创建模型时,Play 和标准 JPA 之间存在一些差异。这个片段:
@OneToOne
@JoinColumn(name="fk_student_id", referencedColumnName="id")
private student Student;
Run Code Online (Sandbox Code Playgroud)
是错的。应该是这样的
@OneToOne
@JoinColumn(name="fk_student_id") //removed the id reference, let JPA manage it
public Student student; //note order of class and var name
Run Code Online (Sandbox Code Playgroud)
此外,您正在定义一个“id”字段,当您从模型扩展时不需要该字段。您是从 Model 扩展的吗?
| 归档时间: |
|
| 查看次数: |
12016 次 |
| 最近记录: |