首页 \ 问答 \ Hibernate JPA Annotations 1到0..1的关系(Hibernate JPA Annotations 1 to 0..1 relationship)

Hibernate JPA Annotations 1到0..1的关系(Hibernate JPA Annotations 1 to 0..1 relationship)

我正在尝试设置1to0..1(零或一)关系,但遇到了问题。

现在我的假设是使用@OneToMany,而不是@OneToOne。

基本上我希望我的“子”表将外键保存到“父”(我非常松散地使用子和父)。 我永远不需要独立加载“儿童”

这是我想要实现的基本表结构

ITEM {
  ID
  RELATED_ITEM_ID
}

INVOICE {
  ID
}
CATALOGUE {
  ID
}

作为Java类重新命名如下

class Item {
...
}

class Invoice {
  @OneToMany(fetch=FetchType.EAGER, orphanRemoval = true, cascade = { javax.persistence.CascadeType.ALL })
  @Fetch(FetchMode.JOIN)
  @JoinColumn(name="RELATED_ITEM_ID", nullable=false)
  Set<Item> items;
}

class Catalogue {
  @OneToMany(fetch=FetchType.EAGER, orphanRemoval = true, cascade = { javax.persistence.CascadeType.ALL })
  @Fetch(FetchMode.JOIN)
  @JoinColumn(name="RELATED_ITEM_ID", nullable=false)
  Set<Item> items;
}

上面的代码,如果我只在Hibernate中注册Invoice或Catalog将创建我想要的表,并且工作完美。 但是,只要我注册了Invoice和Catalog,hibernate就会抛出错误

org.hibernate.MappingException: Duplicate property mapping of _itemsBackref found in package.name.Item

I am trying to setup a 1to0..1 (zero or one) relationship, but am running into issues.

Now my assumption is to use the @OneToMany, and not @OneToOne.

Basically I want my "child" table to hold the foreign key to the "parent" (I use child and parent very loosely). I never need to load "children" standalone

This is the basic table structure I want to achieve

ITEM {
  ID
  RELATED_ITEM_ID
}

INVOICE {
  ID
}
CATALOGUE {
  ID
}

Reprsented as Java classes like the following

class Item {
...
}

class Invoice {
  @OneToMany(fetch=FetchType.EAGER, orphanRemoval = true, cascade = { javax.persistence.CascadeType.ALL })
  @Fetch(FetchMode.JOIN)
  @JoinColumn(name="RELATED_ITEM_ID", nullable=false)
  Set<Item> items;
}

class Catalogue {
  @OneToMany(fetch=FetchType.EAGER, orphanRemoval = true, cascade = { javax.persistence.CascadeType.ALL })
  @Fetch(FetchMode.JOIN)
  @JoinColumn(name="RELATED_ITEM_ID", nullable=false)
  Set<Item> items;
}

The above code, if I only have Invoice or Catalogue registered in hibernate will create the tables as I want, and work perfectly. However, as soon as I have both Invoice and Catalogue registered, hibernate throws me the error

org.hibernate.MappingException: Duplicate property mapping of _itemsBackref found in package.name.Item

原文:https://stackoverflow.com/questions/7913963
更新时间:2022-05-13 22:05

最满意答案

做:

^(?:[^\\]*\\){4}[^\\]*
  • ^(?:[^\\]*\\){4}匹配前4个,包括它们之前的子串

  • [^\\]*匹配第5个之前的子字符串

演示


Do:

^(?:[^\\]*\\){4}[^\\]*
  • ^(?:[^\\]*\\){4} matches first 4 \s including the substring before them

  • [^\\]* matches the substring before the 5th \

Demo

相关问答

更多

相关文章

更多

最新问答

更多
  • h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
  • 创建一个功能(Create a function)
  • 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
  • PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
  • Qt冻结循环的原因?(Qt freezing cause of the loop?)
  • TableView重复youtube-api结果(TableView Repeating youtube-api result)
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • SQL Server 2014版本支持的最大数据库数(Maximum number of databases supported by SQL Server 2014 editions)
  • 我如何获得DynamicJasper 3.1.2(或更高版本)的Maven仓库?(How do I get the maven repository for DynamicJasper 3.1.2 (or higher)?)
  • 以编程方式创建UITableView(Creating a UITableView Programmatically)
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何防止调用冗余函数的postgres视图(how to prevent postgres views calling redundant functions)
  • Sql Server在欧洲获取当前日期时间(Sql Server get current date time in Europe)
  • 设置kotlin扩展名(Setting a kotlin extension)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 如何在vim中启用python3?(How to enable python3 in vim?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • dedecms如何安装?
  • 在哪儿学计算机最好?
  • 学php哪个的书 最好,本人菜鸟
  • 触摸时不要突出显示表格视图行(Do not highlight table view row when touched)
  • 如何覆盖错误堆栈getter(How to override Error stack getter)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • USSD INTERFACE - > java web应用程序通信(USSD INTERFACE -> java web app communication)
  • 电脑高中毕业学习去哪里培训
  • 正则表达式验证SMTP响应(Regex to validate SMTP Responses)