hibernate - 一对多 hibernate 映射中的问题

标签 hibernate arraylist indexing one-to-many bag

我检查了 stackoverflow 上打开的许多主题,但我并没有真正得到问题的答案。好的,让我们考虑一下使用 ArrayList 的示例:

public class Stock implements java.io.Serializable {     
    private Integer stockId;
    private String stockCode;
    private String stockName;
    private ArrayList<StockDailyRecord> stockDailyRecords = new ArrayList<StockDailyRecord>(); 
    //getter, setter and constructor
}
public class StockDailyRecord implements java.io.Serializable { 
    private Integer recordId;
    private Stock stock;
    private Float priceOpen;
    private Float priceClose;
    private Float priceChange;
    private Long volume;
    private Date date;

    //getter, setter and constructor
}

因此我们可以说从 Stock 到 StockDailyRecord 的关联是一对多。这就是我试图在 Stock.hbm.xml 中映射的内容。我读到,在通过 list 标签映射时,我们需要一个索引

所以我的第一个问题是:是否可以将索引列表保留为空?

<list name="stockDailyRecords" table="stock_daily_record" inverse="true" lazy="true" fetch="select">
    <key>
        <column name="STOCK_ID" not-null="true" />
    </key>
    <list-index></list-index>
    <one-to-many class="com.mkyong.stock.StockDailyRecord" />
</list>

我的第二个问题:现在假设我在表STOCKDAILYRECORD(在数据库中)中添加了一个名为indexCol的列。因此,在 Conception 中,我们会得到:每只 Stock 都有一个 StockDailyRecord 列表,从 0 到 x 排序。这意味着 indexCol 相对于其 Stock 是唯一的,但在 STOCKDAILYRECORD 中不是唯一的强>。我的想法正确吗?

我的第三个问题是关于我在 stackoverflow 上找到的解决方案:Hibernate one to many mapping works with a list but not a set? ,在得票最高的答案中,它说我们可以将对象声明为 Collection 并将其实例化为 ArrayList 并在 xml 映射文件中使用 bag 如果我们想避免 <强>列表。那么是否可以声明它为ArrayList而不是Collection?提前非常感谢:)

最佳答案

使用 List 时出现什么问题?您可以将其作为数组列表进行管理。例如:

<bag name="stockDailyRecords" table="stock_daily_record" inverse="true" lazy="true" fetch="select">
<key column="STOCK_ID"/>
<many-to-many column="recordId" fetch="select" lazy="false" class="com.mkyong.stock.StockDailyRecord"/>
</bag>

请记住,ArrayList 实现了 List 接口(interface),顺便说一句,这两个对象具有相同的方法。

关于hibernate - 一对多 hibernate 映射中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11622569/

相关文章:

java - 我应该如何对数据库进行建模,以便数据库中的每个学生实体都有与每个类(class)实体相关的成绩?

sql-server - 将 SQL 查询转换为 hibernate 条件和投影

java - 我在@OneToMany hibernate 映射中遇到错误?

java - 连接 ArrayList 中的字符串和 double

sql - 如何显示一个表中的所有值,但在该表中的两列上显示其他表的值(如果它们的列名相同)

java - Hibernate List<String> Java 持久性 1.0

java - 如何查找自定义数组列表中不存在于另一个数组列表中的元素

javascript - 获取嵌套对象的值

oracle - 在oracle中估计索引创建时间

c - 如何在 C 预处理期间用索引交换字符串