我尝试在一个实体中创建关系(一个表中的 OneToMany,父 - 子关系)并且我有一个类:
public class MenuItem {
@Id
@GeneratedValue
private long Id;
private String content;
private String name;
@ManyToOne(cascade = { CascadeType.ALL })
@JoinColumn(name="parent")
private MenuItem parent;
@OneToMany(cascade = CascadeType.ALL, mappedBy="parent")
private Set<MenuItem> childrens = new HashSet<MenuItem>();
//getters and setters
}
加载数据效果很好,但是当我尝试保存 MenuItem 时,出现以下错误:
“字段‘childrens_id’没有默认值”
Hibernate 尝试保存 MenuItem 相关值(我在日志中看到它),但是,我认为,它尝试创建另一个 Join 表和 finnaly 事务失败。
这完全显示在: http ://www.roseindia.net/hibernate/hibernate4/OnetoManySelfJoin.shtml 但不起作用。我使用了 Hibernate 4.1.1 和 Tomcat 服务器 7。
已解决:删除并再次创建数据库。