栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Hibernate 3.5中的@OrderColumn批注

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409335.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号