【问题标题】:Hibernate duplicate values休眠重复值
【发布时间】:2014-11-06 07:31:00
【问题描述】:

我正在学习 Hibernate,但遇到了一些小问题。

我有一个类 Item,用相同的列映射到 DB 上:

@Entity
class Item {
    private long id;
    private long hash;
    private String name;
    // ... constructors/getters/setters ...
}

Hashes(CRC, Adler, nevermind) 在程序初始化时生成。由于某种原因,它们可能会被复制。

问题是:如何获取Map,key是hash吗?

【问题讨论】:

  • 获取行...自己构建地图...
  • @DanglingPiyush 没有自动解决方案吗?

标签: java hibernate jpa orm hql


【解决方案1】:

在这个例子中你需要什么哈希列?

  1. 数据库 ID 是唯一的,您可以像哈希一样使用它或从中生成哈希
  2. 您应该使用身份@Id 注释 id
  3. 您应该正确覆盖equals()、hash()函数。

【讨论】:

  • 感谢您的回答。哈希用于确定相同的项目并将它们收集在列表中。 Map 用于通过哈希收集此列表。此外,在 getter 上添加的所有注释。关于 equals() 和 hash() 方法 - 谢谢,看看它们。
  • 正是您不需要将哈希属性添加到您的实体中。出于这个原因,有 Object.hash() 功能。对于 JPA 实体,它应该通过 ovveriden usinf 数据库 ID。并非所有地图实现都使用哈希。当然 HashMap 确实如此。
猜你喜欢
  • 2011-06-06
  • 2012-05-24
  • 2018-04-10
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 2011-07-22
  • 2013-06-24
  • 1970-01-01
相关资源
最近更新 更多