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-30]
a -
我希望这种模式可以帮助你,我根据你的要求把它放在一起。 您可能想要将一些组设置为不捕获,以便您只获得所需的段。 但是,它会在没有设置的情况下单独捕获您的设置 URL。 ((?<=/{1})(((?转义使用反斜杠( \/ )完成。 但用于分隔正则表达式的斜线字符可以是任何字符: if ( preg_match ( '~orders/([0-9]+)~', $str, $matches ) ) 将工作而不逃脱。 Escaping is done with backslashes (\/). But the slash character to delimit regular expressions can be any character: if ( preg_match ( '~orders/([0 ...您可以使用replace方法: var s = "Year 1 / English / Writing / How to write your name"; var result = s.replace(/^(?:[^\/]*\/){2}\s*/, ''); console.log(result); 模式将匹配(并且.replace最终将删除它): ^ - 字符串的开头 (?:[^\/]*\/){2} - 两次出现 [^\/]* - 除了/ 0+字符 \/ - a / char \s* - 0+空格 如 ...我今天在玩SVN命令,发现下面的命令给了我想要的东西: svn list -v [name of repo source folder] I was playing with SVN commands today, and discovered that the following command gave me exactly what I wanted: svn list -v [name of repo source folder]我怀疑这只是一个错字。 /$看起来应该是/$1 : rewrite ^/(?!admin)(.*)/$ /$1 permanent; 如果你有更多这样的URI排除,请尝试类似 rewrite ^/(?!admin|secure|raw)(.*)/$ /$1 permanent; nginx使用与Perl相同的正则表达式库,所以你可以用命令行来测试这些东西 perl -ple 's#^/(?!admin|secure|raw)(.*)/$#/$1#' 并只需输入示例URI。 I suspect this ...
正则表达式在文件夹url中删除一定数量的斜杠后捕获(Regex to capture after a certain number of slashes in folder url)[2023-11-28]
做: ^(?:[^\\]*\\){4}[^\\]* ^(?:[^\\]*\\){4}匹配前4个,包括它们之前的子串 [^\\]*匹配第5个之前的子字符串 演示 Do: ^(?:[^\\]*\\){4}[^\\]* ^(?:[^\\]*\\){4} matches first 4 \s including the substring before them [^\\]* matches the substring before the 5th \ Demo尝试这个:- RewriteRule ^(.*)/$ $1 [R,L] Added in the line below just above my current RewriteRule ^(.*)/$ $1 [R=301] rule RewriteCond %{REQUEST_FILENAME} !-d Thanks for the reply though limc :). 匹配任何角色。 [^/]匹配除/之外的任何字符。 由于/字符标记正则表达式文字的开头和结尾,您可能必须像这样逃避它们: [^\/] 。 所以,用[^\/]*替换.*会做你想要的: /^http:\/\/www\.domain\.com\/folder1\/folder2\/[^\/]*\/[^\/]*\/index\.html([\?#].*)?$/.test(location.href) . matches any character. [^/] matches any characters exc ...正则表达式捕获URL(Regex to capture an URL)[2022-04-12]
您可以使用[regex]::match或-replace 。 在下面的示例中,我捕获了href=之后的所有内容,它不是起始大括号} : '@{href=http://download.company.net/file.exe}[0]' -replace '@{href=([^}]+).*', '$1' 输出: http://download.company.net/file.exe You can either, use [regex]::match or -replace. In the follow ...相关文章
更多- Spring Project Annotations
- jpa与hibernate注解混合使用
- JPA环境配置
- Hibernate创建sessionFactory null
- 【第八章】 对ORM的支持 之 8.4 集成JPA ——跟我学spring3
- JPA ORM框架介绍
- spring 3.0 和jpa 整合 用jboss
- Hibernate Search(基于version3.4)--第五章Querying
- Hibernate映射关系
- hibernate关系映射问题
最新问答
更多- 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)