插入到连接实体中的数据总是显示为null - playframework

时间:2014-06-10 22:16:57

标签: java mysql jpa playframework-2.0 ebean

这几天一直在努力。我有2个模特课程和学生。每个模型都用作注册课程和学生的表格。我创建了一个名为timetable的独立实体,它有一个课程对象和一个学生对象,而不是一个多关系。以下是代码的重要部分

来自班级模型的对象/列表

@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;

现在,我通过表格“添加”课程时间表。表单有2个隐藏的输入,包含电子邮件和ID。 mySQL表更新,但使用NULL值而不是表单中填充的值。如果我将时间表变量从对象更改为基本类型,它会正确更新,但是当我更改对象以及manytoone / onetomany关系时,它只会再次为NULL。有关为什么会发生这种情况的任何想法?

我是RDMS和ORM的新手。我已经搜索了相当多的资源来将上述代码放在一起。这是一个很好的选择:http://uaihebert.com/jpa-mini-book-first-steps-and-detailed-concepts/22/(我从那里获得了一个名为时间表的新课程)和这个:http://lazylightening-tech.blogspot.co.uk/2013/07/manytomany-ebean-example.html Beisar老兄也发布了一些非常好的东西。我已经过多了他在这里和谷歌小组的帖子以获取链接,但大多数人都有错误消息。我没有收到错误,只是没有注册我提交的内容。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

尝试编写手动getter和setter ..即使我遇到了这个问题..如果你正在使用eclipse那么你可以做..

right click + source + generate getters and setters

此外,请仔细阅读 - http://www.playframework.com/documentation/2.1.0/JavaEbean
PS - 因为编译后发生了Ebean类增强,所以不要指望Ebean生成的getter / setter在编译时可用。如果您希望直接使用它们进行编码,请自行添加getter / setter,或者确保在项目的其余部分之前编译模型类,例如。将它们放在一个单独的子项目中。