java - 插入可连接实体的数据始终为空 - playframework

标签 java mysql jpa playframework-2.0 ebean

这几天一直在纠结这个问题。我有 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/

相关文章:

java - 如何用java更新多个文档? MongoDB 3.5 驱动程序

java - 添加带有过期时间的 cookie 时,Cookie 过期时间必须为正整数 最大 java 日期 Aug 17, 292278994 12 :42:55 PM

java - 如何在 Mac 上使用较新的 JRE 或 JDK 运行 Android Studio?

mysql - SQL 使用任意 IN 子句选择所有内容

php - 在 PHP 中到处使用准备好的语句? (PDO)

java - 为什么 JtextField.setDocument() 中设置的 PlainDocument() 排除文本中的一个字符

MySQL 表锁

java - JPA Criteria 查询与 child 不工作的谓词的一对多关系

java - 如何使用spring data jpa查询没有主键的表

java - JPA:在保存时忽略字段,但在选择时获取