这几天一直在纠结这个问题。我有 2 个模型类(class)和学生。每个模型都用作注册类(class)和学生的表格。我创建了一个名为时间表的单独实体,它具有类(class)对象和学生对象,而不是具有多对多关系。以下是代码的相关部分
类模型中的对象/列表
@Id
@GeneratedValue
public Long id;
@OneToMany(mappedBy = "course", cascade=CascadeType.ALL)
public List<Timtable> timetable;
学生模型中的对象/列表
@Required
@Email
@Id
public String email;
@OneToMany(mappedBy = "student", cascade = CascadeType.ALL)
private List<Timetable> timetable;
时间表模型中的对象
@ManyToOne
@JoinColumn(name="email")
public Student student;
@ManyToOne
@JoinColumn(name="id")
public Course course;
现在,我通过表单将类(class)“添加”到时间表中。该表单有 2 个隐藏输入,即电子邮件和 ID。 mySQL 表更新,但使用 NULL 值而不是表单中填充的值。如果我将时间表变量从对象更改为原始类型,它会正确更新,但是当我改回对象以及多对一/多对多关系时,它再次变为 NULL。关于为什么会发生这种情况有什么想法吗?
我是 RDMS 和 ORM 的新手。我已经搜索了相当多的资源来将上述代码组合在一起。这是一个很好的:http://uaihebert.com/jpa-mini-book-first-steps-and-detailed-concepts/22/ (我从那里得到了名为时间表创意的新类(class))和这个:http://lazylightening-tech.blogspot.co.uk/2013/07/manytomany-ebean-example.html Beisar 家伙还在上面发布了一些非常好的东西。我在这里和谷歌小组上看过太多他的帖子,无法找到链接,但大多数人都有错误消息。我没有收到错误,它只是没有注册我提交的内容。有人可以帮忙吗?
最佳答案
尝试编写手动 getters 和 setters..即使我遇到了这个问题..如果你使用的是 eclipse 那么你可以这样做..
right click + source + generate getters and setters
此外,请检查一下-
http://www.playframework.com/documentation/2.1.0/JavaEbean
PS - 因为 Ebean 类增强是在编译后发生的,所以不要指望 Ebean 生成的 getter/setter 在编译时可用。如果您希望直接使用它们进行编码,可以自己显式添加 getter/setter,或者确保在项目的其余部分之前编译模型类,例如。将它们放入单独的子项目中。
关于java - 插入可连接实体的数据始终为空 - playframework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151758/