【问题标题】:Storing array Double[][] or List<List<Double>> or smth with Hibernate使用 Hibernate 存储数组 Double[][] 或 List<List<Double>> 或 smth
【发布时间】:2012-12-25 19:31:48
【问题描述】:

您好!需要帮助解决以下问题:

假设我们需要在实体组中存储 Double 值,例如

M1: {M1.1, M1.2, ..., M1.10}
M2: {M2.1, M2.2, ..., M2.15}
...
M10: {M10.1, M10.2,..., M10.5}

这些值由客户端通过 JSP 设置。

如何将它们存储在实体中? 我缺乏关于如何存储List&lt;List&lt;Double&gt;&gt;List&lt;ArrayList&lt;Double&gt;&gt;double[][] 等的理解和示例... 谷歌了它,但没有找到答案.. 不胜感激!

【问题讨论】:

  • 什么样的表会保存这些信息_
  • List&lt;ArrayList&lt;&gt;&gt;List&lt;List&lt;&gt;&gt; 相比在任何情况下都是多余的。唯一的区别是您在第一种情况下对封闭的List 实现施加了约束。如果您使用 Guava,请查看MultiMap

标签: java hibernate jpa


【解决方案1】:

在弄清楚如何使用 Hibernate 存储数据之前,您需要弄清楚数据将如何在数据库中表示。一旦你有了这些,从 Java 到 SQL 的映射就会变得更加清晰。

您要做的第一件事是弄清楚如何存储数字列表。最直接的做法是创建两个表:

  1. 一个 NumbersList 表,其中包含一个 ID 和一些与该列表相关的附加数据。

  2. 一个 NumbersListEntry 表,包含三个字段:ListId(引用 NumbersList 表)、EntryOrder(即条目在列表中的位置)和 Number(实际编号)。

    一旦你有了这些,你可以用两个额外的表存储列表列表,与第一个表非常相似:

  3. ListOfList 表的 ID 和一些与列表列表相关的数据(所有者等...)。

  4. 具有相似三个字段的 ListOfListEntry 表:ListOfListId(引用 ListOfList 表)、EntryOrder 和 NumbersListId(引用 NumbersList 表)。

【讨论】:

  • 谢谢,帮了大忙。我将使用您给我的建议将新类添加到我的域模型中。估计不会有问题
猜你喜欢
  • 1970-01-01
  • 2016-02-18
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多