如何使用 Hibernate 逆向工程工具生成或<列表>对于逆关联?列表>
我想将元素添加到最终像这样映射的集合中:
<set name="others" inverse="true" lazy="true" table="other" fetch="select">
<key>
<column name="otherId" not-null="true" />
</key>
<one-to-many class="my.pkg.OtherEntity" />
</set>
我希望使用 Hibernate,因为我不关心它们检索的顺序,我只想保留关联的那一侧最新。根据 https://www.hibernate.org/117.html,“Hibernate 可以添加到使用 inverse="true" 声明的而不初始化集合。
我的问题是我不知道如何强制(或建议)逆向工程工具(hibernate-tools.jar)使用——它总是使用
谢谢!
I want to add elements to a collection that ends up getting mapped like this:
<set name="others" inverse="true" lazy="true" table="other" fetch="select">
<key>
<column name="otherId" not-null="true" />
</key>
<one-to-many class="my.pkg.OtherEntity" />
</set>
I'd like Hibernate to use instead, because I don't care about the order they're retrieved in, I just want to keep that side of the association up-to-date. According to https://www.hibernate.org/117.html, "Hibernate can add to a <bag>, <idbag> or <list> declared with inverse="true" without initializing the collection."
My problem is I don't know how to force (or suggest to) the reverse engineering tools (hibernate-tools.jar) to use <bag> or <list>--it ALWAYS uses <set>.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用逆向工程配置文件(使用 XML 语法)自定义逆向工程过程。我自己还没有尝试过,但这个示例可能对您有用:
如果它不起作用,您可能会找到有关控制逆向工程过程的更多详细信息 此处。
You can customize the reverse engineering procedure with a reverse-engineering configuration file, which uses an XML syntax. I haven't tried this myself, but this example may work for you:
If it does not work as it is, you may find more details about controlling the reverse engineering process here.
如果您拥有 List 类型而不是 Set 类型,您可以使用 ant-java-task 使用:
使用类“de.wedeaf.beans.BeanHelper”:
Ever you would have List-type instead of Set-type you may use ant-java-task using:
Using the class "de.wedeaf.beans.BeanHelper":