加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 一对多单向父子ID级联保存

发布时间:2020-12-15 02:05:49 所属栏目:Java 来源:网络整理
导读:当我尝试将ID从父类保存到子类时,我不断收到错误 “错误 – 字段’parent_id’没有默认值” 我尝试了所有类型的映射.我正在使用注释. 任何有关这方面的帮助将不胜感激 家长: @Id @Column(name="id") @GeneratedValue(strategy=GenerationType.AUTO) private
当我尝试将ID从父类保存到子类时,我不断收到错误
“错误 – 字段’parent_id’没有默认值”

我尝试了所有类型的映射.我正在使用注释.

任何有关这方面的帮助将不胜感激

家长:

@Id
      @Column(name="id")
      @GeneratedValue(strategy=GenerationType.AUTO)
      private long id;
      @Column(name="description")
      private String description;
      @OneToMany
      @Cascade(value= {org.hibernate.annotations.CascadeType.SAVE_UPDATE,org.hibernate.annotations.CascadeType.DELETE})
      @JoinColumn(name="parent_id")
      private List<Child> children;

儿童:

@Id
  @Column(name="id")
  @GeneratedValue(strategy=GenerationType.AUTO)
  private long id;
  @Column(name="description")
  private String description;

谢谢.

解决方法

你必须在其他地方出错,因为这些映射将以它们的方式运行.他们可能会更好,但他们会工作.具体来说,所有@Column注释都是多余的和不必要的,并且如果没有注意到,你应该使用JPA的@OneToMany的级联属性而不是Hibernate的@Cascade.我已经用您发布的清理版本创建了一个 runnable example.如果你有git和maven,你可以运行它:

git clone git://github.com/zzantozz/testbed tmp
cd tmp
mvn -q compile exec:java 
    -Dexec.mainClass=rds.hibernate.UnidirectionalManyToOneJoinColumn 
    -pl hibernate-unidirectional-one-to-many-with-join-column

它创建一个包含两个子节点的父节点,保存它们,然后加载它们并打印出图形.输出是:

Creating parent with two children
Loading saved parent
Parent{description='parent',children=[Child{description='child 2'},Child{description='child 1'}]}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读