当前位置: 首页 > 面试题库 >

JPA /休眠“复合ID类不会覆盖equals()”

连曜灿
2023-03-14
问题内容

我正在使用JPA并收到以下警告。我已经对此进行了研究,并了解了为什么需要覆盖它以及Hibernate如何使用这些方法。我仍然有一个问题:

例外:

复合ID类不会覆盖equals()

题:

为什么Hibernate只关心没有复合ID的类?@Id如果只有一个出席者,默认情况下是否会在现场进行比较,还是这里发生的事情更复杂?


问题答案:

因为当实体没有复合ID时,它们只有一个,即一种基本支持的类型(整数,长整数,字符串等),并且这些类已经具有定义明确的equals()(和hashCode())方法。



 类似资料:
  • 问题内容: 我的实体如下。我的数据模型在下面强制执行,因此我无法更改引用的完整性。因此,我陷入了复合键的困境。我想自动生成/使用一些生成器作为orderId 是的,我已经阅读以下内容。 http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity- mapping- identifier 我不想管理

  • 问题内容: 是否可以对 不是标识符/不是复合标识符一部分的 某些列使用DB序列? 我正在将hibernate用作jpa提供程序,并且我有一个表,其中包含一些生成的值(使用序列)的列,尽管它们不是标识符的一部分。 我想要的是使用序列为实体创建新值,其中序列的列 不是 主键(的一部分): 然后,当我这样做时: 该ID将被生成,但该属性也将由我的JPA提供程序生成。 为了清楚起见:我希望 Hiberna

  • 问题内容: 在具有两种类型的实体(父级和子级)的场景中: 父母-@OneToMany Collection孩子; 默认设置是对子级集合进行延迟加载。这种模式对少数儿童非常有效,但是如果这个数字很大,这似乎是不可持续的。因此,在某些情况下,我认为孩子的数量会很大,因此我使用了分页的服务方法(例如“ getChildren(父父母,int偏移量,int计数)”)。 问题是:这是处理此类情况的最佳方法吗

  • 问题内容: 有人可以透视一下JPA和Hibernate之间的区别吗?还是将这些互补的概念一起使用? 问题答案: 大致来说,JPA是java社区的一个标准,这里是specs,它是由Hibernate家伙实现(并扩展)的(此处提供一些信息)。作为规范,您将不会直接使用JPA,而是使用JPA实现。 请注意,如果要使用hibernateJPA扩展,将破坏与其他JPA实现的兼容性(尽管有些人会说“为什么要使

  • 问题内容: 可以使用在HQL中覆盖。 是否也可以覆盖?怎么样? 问题答案: Hibernate Docs 中的此代码段中的限定词意味着您可以用热切的方法覆盖懒惰,但不能用其他方法来替代: 如果您正在使用属性级别的延迟获取(通过字节码检测),则可以强制Hibernate使用获取所有属性立即在第一个查询中获取延迟属性。 不寻常的是,如果您使用Criteria API从急切变为懒惰,则看起来可以。只需调

  • 问题内容: 我在Employee类中有以下定义 现在,我想使用现有员工ID导入现有员工。即使在保存之前设置了员工ID,也会忽略分配的ID,并存储自动递增的ID。我们如何覆盖呢? 问题答案: 我编写了自己的生成器来解决此问题。 并像这样使用它:(替换包名)