您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Hibernate 3.5中的@OrderColumn批注

Hibernate 3.5中的@OrderColumn批注

Hibernate不支持@OneToMany(mappedBy =“ …”)和@OrderColumn的组合。此JIRA问题跟踪使用此无效组合时引发更明显错误消息的请求:http ://opensource.atlassian.com/projects/hibernate/browse/HHH-5390

我认为主要由于它是一种奇怪的关系模式而不受支持。上面的注释指示关系的“一个”侧确定如何将关系刷新到数据库,但是通过检查列表,顺序/位置仅在“许多”侧可用。“多”方拥有该关系更有意义,因为该方既了解元素的隶属关系又了解元素的顺序。

Hibernate Annotations文档详细描述了这种情况:

http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity- hibspec-collection-extratype- in??dexbidir

解决方法删除“ mappedBy”属性,这将导致关联使用认的联接表策略而不是目标表上的列。您可以使用@JoinTable批注指定连接表的名称

此更改的最终结果是,关系的“许多”端现在确定了如何保持关系。您的Java代码需要确保List正确更新,因为Hibernate现在在刷新实体时将忽略“一侧”。

如果您仍然想用Java访问“一侧”,请使用

@ManyToOne
@JoinColumn(name="...", insertable=false, updatable=false, nullable=false)
其他 2022/1/1 18:21:09 有583人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶