问题标签 [hibernate-annotations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9886 浏览

java - Hibernate注释多对一不将子添加到父集合

我有以下带注释的 Hibernate 实体类:

我的意图是 Cat 和 Kitten 之间的双向一对多/多对一关系,其中 Kitten 是“拥有方”。

我想要发生的事情是,当我创建一个新的 Cat,然后是一个引用该 Cat 的新 Kitten 时,我的 Cat 上的 Set of kittens 应该包含新的 Kitten。但是,这不会在以下测试中发生:

即使在重新查询 Cat 之后,Set 仍然是空的:

我对 Hibernate 的期望是不是太高了?或者是我自己管理收藏的负担?(注释)文档没有表明我需要在父对象上创建便利addTo*/方法。removeFrom*

有人可以告诉我我对 Hibernate 与这种关系的期望是什么吗?或者,如果没有别的,请指出正确的 Hibernate 文档,它告诉我我应该期待在这里发生什么。

我需要做什么才能使父集合自动包含子实体?

0 投票
1 回答
10296 浏览

hibernate - 无法实例化抽象类或接口:持久化时出现问题

我有一个维护 AdGroupInterfaces 列表的类活动。我将坚持实施

}

AdGroupInterface 的实现是 AdGroups。当我将广告组添加到广告系列的列表中时,

活动 c;c.getAdGroupList().add(new AdGroups()) 等并保存广告系列

它说“无法实例化抽象类或接口:” AdGroupInterface

它在坚持之前没有认识到实施......

而持久化广告组单独工作。当它是另一个实体的成员时,它不会被持久化。

}

我错过了什么?请调查一下...

0 投票
1 回答
49 浏览

java - 可以在减速中添加注释吗

我们可以将注释添加到减速而不是 getter 方法吗?

我已经习惯了

我们可以这样使用吗

谢谢大家。

拉维

0 投票
1 回答
1758 浏览

java - 我如何依赖来自单独项目的休眠注释映射?

我正在尝试研究如何为共享某些实体的两个不同项目进行映射。由于它们只共享有限的映射子集,我的第一个想法是将这些映射分离到一个单独的 jar 中。我正在使用休眠注释来进行映射(所以它们在类文件中,而不是单独的 XML 中)。

项目 A 和项目 B 都依赖于这个映射项目,它只包含几个休眠映射。项目 A 没有自己的映射,但项目 B 有。无论我做什么,这似乎总是会导致问题,因为如果我不为映射项目配置持久性单元,则映射永远不会被拾取。对于项目 B 也是如此。如果我在映射项目中配置了持久性单元,项目 A 可以工作,但在项目 B 中运行查询只会给我(Mapping恰好是类的名称):

我相信这是由于项目 B 有自己的持久性单元造成的,显然这两者没有被合并。我也不希望他们这样做,我宁愿只在项目 A/B 中配置一个,而不是他们所依赖的 jar。那么有没有办法告诉hibernate扫描和映射依赖jar中的注释并将它们添加到当前的持久化单元中?

0 投票
4 回答
31045 浏览

java - 使用 Hibernate @Index Annotation 在 DB 上创建索引

我的项目中有注释驱动的休眠功能。

现在我想在列上创建一个索引。我当前的列定义是

我在这里添加@Index注释。

然后 DROP TABLE 并重新启动 Tomcat 服务器。服务器实例化后,表已创建,但我在以下查询中看不到新索引。

预计用新索引构建表。我正在将 InnoDB 与 MySQL 一起使用。

0 投票
6 回答
54531 浏览

java - Java 中的 IncompatibleClassChangeError 异常是什么?

我正在开发一个小型应用程序,我正在尝试使用 Hibernate Annotations 来映射我的实体。当我遇到这个异常时,我想测试一切是否正常:

有人能解释一下这个例外是什么吗?这是我第一次看到它。这是我的应用程序的主要内容:

我的休眠配置非常简单:

这是我正在使用的休眠 maven 依赖项:

有人能帮助我吗 ??

0 投票
1 回答
1773 浏览

hibernate - HibernateToolTask​​ (hbm2hbmxml) 不会在 @org.hibernate.annotations.Index 注释的休眠映射中生成索引

我正在尝试使用休眠注释从 POJO 生成休眠映射。然后我想使用 liquibase 来生成数据库模式。所以我需要在我的 POJO 中定义索引。

示例 POJO:

但是当我在 ant 中运行 HibernateToolTask​​ 时:

我在映射中没有得到任何索引:

同时,当我做 hbm2ddl - 'create index' 生成:

如何让休眠在映射中生成索引?

更新:

我发现,liquibase 使用注释来生成模式,所以这部分问题得到了解决。我还有一个:

我想将现有数据库反向工程为 POJO。POJO 是从映射生成的,映射(使用 jdbcannotation-hbm2hbmxml 生成)没有任何索引。我相信这本质上是相同的问题:hbm2hbmxml 不生成索引。

更新 2:

为什么我需要那个?我有一个现有的数据库架构。我曾经更改它,然后对 POJO 进行逆向工程。现在我想使用 POJO 并通过注释生成映射和模式。

所以我想让 POJO 与当前数据库模式匹配以继续使用它们。显然,除了外键名称和索引之外的所有内容都是匹配的。但是 hbm2java 不会生成 @Index 注释。例如

此任务在 ddl 中生成索引,而不在 POJO 中生成索引。

0 投票
2 回答
3633 浏览

java - 在 Hibernate 中映射每个项目对象的多行

我遇到了一些,呃,非正统的设计,我不太确定如何处理它。我要映射的表如下所示:

一个 id 可以有几行(显然,不是主键)。例如,它可能如下所示:

每个 ID 可能有几个不同的类别。对于任何给定的(id、类别)组合,属性名称都是唯一的。

(编辑) ID 字段是不同表中对象的外键。我需要能够仅使用 ID 字段从这些对象中获取存储在此表中的各种属性。如果复合键是要走的路,我该如何链接它们?

(EDIT2)我还认为您在这里缺少的细节是第一列中具有相同 ID 的所有数据在概念上属于同一个对象。我不希望每个 (ID,CATEGORY) 组合都有一个单独的实例。

显然,这不是很规范。最坏的情况是,我设置了一些额外的表,这些表已标准化并复制所有内容,但我想知道是否有人可以建议一种明智的方法将这些信息直接放入休眠支持的对象中?如有必要,在某种字符串属性包中。

顺便说一句,我正在使用休眠注释。

0 投票
1 回答
8583 浏览

java - 为什么 Hibernate 会抛出异常“java.lang.NoSuchMethodError: javax.persistence.UniqueConstraint.name()”?

为什么UniqueConstraint以下 Hibernate 映射声明中的注释会导致异常java.lang.NoSuchMethodError: javax.persistence.UniqueConstraint.name()(请参阅下面的堆栈跟踪)?请注意,当我删除UniqueConstraint注释时,Hibernate 不会抛出异常并且 Spring 成功创建了应用程序上下文。

源代码:

异常堆栈跟踪:

软件配置:

  • Hibernate 3.5.5-Final
  • Spring 3.0.4.RELEASE
  • 网络逻辑服务器 10.3.2

相关的 Maven 2 依赖项pom.xml

休眠依赖:

弹簧依赖:

0 投票
1 回答
3542 浏览

hibernate - 使用注释映射默认列值

如果我不设置它的值,我希望为每一行插入值“15-JUL-1980”。

但它没有按预期工作。我在这里做错什么了吗?

由于某些原因,我想在应用程序中设置默认值,而不是在数据库中。

更新

最初我只尝试不使用“insertable = false”。

作为一个新手,我尝试了不同的选择并保留了这个选择。

这是我正在运行的测试用例:

以及它产生的输出:

桌子: