问题标签 [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 投票
1 回答
525 浏览

database - 休眠中的多个连接关联

我的问题与数据库设计以及如何在 Hibernate 中对该设计进行建模有关。我有两个具有以下主键的表:

BLOCK 到 BLOCK_SHP 是一对多的关系,因为单个块可以具有与其关联的许多不同版本的形状。到现在为止还挺好。

第二个关联是我还希望能够获得 Block 的当前形状。为此,我在 BLOCK 表中添加了另一个属性:

BLOCK_ID 和 CUR_SHAPE_VERSION 现在形成 BLOCK_SHP 表 BLOCK_ID SHAPE_VERSION 的外键。每个块可能有 0 或 1 个当前形状。

在 Hibernate 中,我通过以下方式设置了第二个关联:

@NotFound 注释是必需的,因为 Hibernate 在处理可为空的一对一关联时遇到问题。如果它没有找到关联,它会忽略它而不是抛出错误。

但这对我来说并不是很满意,因为这意味着 Hibernate 并没有真正意识到实体之间的正确关系。例如,如果我查询currentShape is not null,Hibernate 不知道如何正确执行此查询 - 它正在查询block_id is not null 或 cur_shape_version is not null

所以我想我有几个问题。首先,有没有更好的方法在数据库中对第二个关联进行建模?其次,Hibernate中是否有更好的方法来设置注释,以便更好地理解关系并能够正确查询形状表?

谢谢你的帮助。

0 投票
3 回答
4109 浏览

java - 我不能将@Value 注释与@Transient 注释一起使用吗?

我有一个类来映射一个使用休眠的表。我想忽略一些变量以将映射用作常量。我想从属性中加载常量值,所以我这样编码:

但是, 的值MY_VALUE始终设置为 0。我不能将 @Transient 注释与 @Value 注释一起使用吗?还是我错过了其他东西?

0 投票
3 回答
6606 浏览

hibernate - 序列问题为什么两个实体在使用 hbm2ddl 生成模式时共享相同的序列?

hbm2ddl在基于休眠的应用程序中使用来生成数据库模式。hibernate.hbm2ddl.auto财产的价值是create-drop

我正在@Entity为我的 POJO 类使用注释。

然而,在执行代码时,我不断获得递增的 Id 值。例如,对于 2 个表,Id(即 Prim Key)应以 1 开头。但在 中插入记录后Table 1,序列从 的下一个值开始Table 2。它应该从表 2 的 1 重新开始。我试过GenerationType.SEQUENCE& GenerationType.AUTO。没有任何作用:-(

0 投票
1 回答
6156 浏览

hibernate - 如何防止出现 org.hibernate.loader.MultipleBagFetchException

我得到以下异常:

org.hibernate.loader.MultipleBagFetchException:不能同时获取多个包

我用的豆子是:

在 dao 我有以下代码:

我不知道该怎么做才能防止这种异常

0 投票
1 回答
252 浏览

java - 在休眠中映射复合外键

我在这里问了一个关于如何设计数据库模式的问题。

总之,我有一个可以包含联系人和组的地址簿。组也可以包含联系人,但只能包含与他们在同一地址簿中的联系人。

通讯录
通讯录编号

联系人
ID
地址簿 ID


id
组 id

Group To Contact
id
Addressbook id
Contact id
Group id

通过将地址簿 ID 添加到多对多关系表中,我可以强制地址簿匹配。然而,我对休眠比较陌生,所以:

因此,在开始时,我将拥有上述两个表,并且我需要由 hibernate 以一种在添加或修改集合中的对象时强制地址簿 ID 匹配的方式来控制集合。

0 投票
2 回答
3400 浏览

hibernate - 休眠多对多映射,用于具有额外列、代理键、额外主键的连接表

我很难为以下场景(来自遗留数据库)解析实体映射(使用注释)

场景一:

场景二:

场景 3:

是否可以使用注释和解释在休眠中显示这些实体?

0 投票
1 回答
722 浏览

java - 您如何使用 Hibernate 注释有条件地映射集合?

如果我有一个如下所示的类结构(已删除注释):

Store 永远不会为 null,它是 Person 和 Paint 之间使用的键。目标是匹配与 Swatch 具有相同颜色的所有 Paint 记录与与 Person 相同的存储。但是,Swatch 可能为 null 或其颜色属性可能为 null(在这两种情况下都返回与 Person 具有相同存储的所有 Paint)。

是否有基于 JPA 或 Hibernate 的注释将在绘画集合上构造此查询?

0 投票
3 回答
16060 浏览

hibernate - Hibernate 注释或 XML 配置

我已经用Hibernate开始了一个新项目。Hibernate 注释是更好的选择还是 Hibernate XML 映射更好?

我已经将 Hibernate 与 XML 配置一起使用,但我不知道注释。

  1. 在进行基于注释的实现时是否有任何问题?
  2. 基于注释的应用程序维护是更容易还是更复杂?
  3. 哪一种更好(即注解或 XML 映射),哪一种被广泛使用?为什么?
  4. 如果我在不同级别使用不同的数据库,即生产或集成或开发级别,我是否需要更改代码?

注意:我不是在比较两种技术,而是想知道在应用程序中使用最新技术中的哪一种(即两种方式中的一种)。

0 投票
4 回答
167615 浏览

java - 混淆:@NotNull 与 @Column(nullable = false) 与 JPA 和 Hibernate

  1. 当它们出现在 a 的字段/吸气剂上时@Entity,它们之间有什么区别?(我通过Hibernate持久化实体)。

  2. 它们各自属于什么框架和/或规范?

  3. @NotNull位于 内javax.validation.constraints。在javax.validation.constraints.NotNulljavadoc中它说

    带注释的元素不能为空

    但它并没有说明元素在数据库中的表示,那么为什么我nullable=false要在列中添加约束呢?

0 投票
1 回答
5060 浏览

database-design - 如何不在休眠中创建列在实体类中包含一些属性

我想在实体接缝中拥有财产。但我不想在数据库中创建列。例如我的实体是;

在这个实体子列表中是映射数据库,但我不想在数据库中映射示例列表。我该怎么办?

谢谢 。