gpt4 book ai didi

java - 我是否总是需要在 hibernate 中为多对多关系创建单独的类

转载 作者:搜寻专家 更新时间:2023-11-01 02:32:47 26 4
gpt4 key购买 nike

我正在看这篇文章

http://www.mkyong.com/hibernate/hibernate-many-to-many-relationship-example/

但是他创建了三个类

Stock
Category
stock_category

我是否总是需要单独的关系表,或者这可以在 2 个表中完成,就像只在 Stock 、 Category 中一样

最佳答案

你有多对多关系,你需要一个联结数据库表,在你的例子中是 Stock_Category 表。也就是说,连接表可能不需要显示为 Hibernate 实体,具体取决于您要完成的任务。

如果您的联结表仅包含来自Stock 表和Category 表的主键,那么您可以使用@ManyToMany。在这种情况下,Stock 实体将具有返回所有类别的 stock.getCategories(),而 Category 实体将具有返回所有股票的 category.getStocks()。联结表根本没有出现。

但是,如果您要将其他行为添加到 Stock_Category 表中,例如,如果您想捕获将股票分配给该类别的人员或添加时间,那么您将需要使用 @OneToMany@ManyToOne 而不是 @ManyToMany。在这种情况下,联结表将显示为一个 Hibernate 实体。因此,Stock 实体将具有返回所有股票类别的 stock.getStockCategories(),而 Category 实体也可能具有 stock.getStockCategories()(如果您配置双向方向关系)返回相同的东西。 StockCategory 实体包含其他属性,例如 personWhoAddsTheStockIntoCategorydateAdded 等...

希望这对您有所帮助。

关于java - 我是否总是需要在 hibernate 中为多对多关系创建单独的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5204027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com