问题标签 [hibernate-mapping]

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 回答
530 浏览

java - 创建实体时添加静态属性数据

假设我有两种实体类型:用户和国家。

国家实体永远不会被创建并且不可变。它们由 ISO alpha3 国家代码键入,例如“USA”。它们位于具有 PK 列 ID 的表 COUNTRY 中。

用户具有到 Country w/ cascade = none 的多对一映射。用户驻留在具有引用 COUNTRY(ID) 的 FK 列 COUNTRY_ID 的 USER 表中。

创建新用户时,我可能会执行以下操作:

不过,我认为这很浪费,因为它需要先查询 COUNTRY。所以我注意到我也可以这样做:

由于 cascade = "none" 这不应该需要查询 COUNTRY 表;它应该只是将“USA”作为 COUNTRY_ID 直接插入到 USER 中。那是对的吗?

现在假设有一些代码只会创建 COUNTRY_ID = "USA" 的用户。在那种情况下,我想到存储一个 ID = "USA" 的静态 Country 实例并将其用于每个新用户?例如:

假设从多个线程和多个持久性上下文中同时调用persistUser()。

我的问题:

  1. 持久的用户实体会以任何方式改变我的单身“美国”国家实例吗?

  2. 由于其他一些原因,这完全是不可取的吗?

上面的两个类只是为了说明问题;我实际上并没有做那么愚蠢的事情。

0 投票
2 回答
2162 浏览

hibernate - Hibernate:如何与另一个数据库进行一对多映射?


我有 2 个类:用户和消息。
一个用户可以有多个消息。
即这是一对多的关联。
我的 users 表在第一个数据库中,messages 表在第二个数据库中。
我怎样才能映射它们?


我的用户和消息表映射:

我还有 2 个 *.cfg.xml 文件,其中映射了这些类。

我的测试代码片段:

我收到一个错误:关联引用未映射的类:com.example.hibernate.Message

PS我的HibernateUtilUser类:

0 投票
0 回答
804 浏览

hibernate - 休眠@CollectionOfElements 未持久化

你好,

到目前为止,我在使用 Hibernate 时非常满意。最近,我似乎无法使用注释来保留 @CollectionOfElements 。

我正在保存类 Estate 的对象,其中包含 RoomGroups 的地图,如下所示:

RoomGroup 已正确持久化。RoomGroup 也与 MasterPrice 有关系

到目前为止一切顺利,MasterPrice 元素已正确存储在数据库中。现在在 MasterPrice 里面有另一个集合,这个集合似乎永远不会被持久化

MasterPriceItem 类是这样定义的

我还在 MasterPriceItem 中定义了 equal/hashCode 方法,但似乎 hibernate 永远不会保留这个方法。我没有得到任何异常,当我尝试加载它时,它总是显示为 NULL。

我正在使用 hibernate_3.3.1.ga 有什么想法可以尝试吗?类 MasterPriceItem 被 hibernate 正确分析[如果我把一个不在表中的字段,我得到一个错误]

任何帮助高度赞赏。谢谢。

0 投票
3 回答
2369 浏览

java - 休眠地图>

我有以下表格:

我想在课堂上state得到map<key, set<value>>Map<Event, set<StateEventAction>>

我怎样才能在休眠中做到这一点?

0 投票
1 回答
902 浏览

hibernate - 是否可以在 Hibernate 3 中使用带有 XML 的一个 SessionFactory 使用多个数据库?

例如我可以使用catalog属性还是schema为它?
现在我使用了几个数据库和几个 sessionfactories,但我想通过外键在这些数据库之间创建关系,所以据我所知,我需要使用一个 SessionFactory。也许一些示例配置,我该如何实现?

提前致谢

0 投票
3 回答
1909 浏览

java - 如何在 Hibernate 中映射多对一关联,其中子键具有复合键,其中一部分是父键中的主键?

我有一个(旧版)表结构,看起来有点像这样:

即child的部分主键是parent的主键。我试图像这样映射它(我们使用基于 xml 的 Hibernate):

Java类:

更新:我使用了错误的关系类型(更新),但现在我遇到了另一个问题:似乎在表中创建子行时,parentid 为空。由于 parentid 是复合键的一部分,因此它们插入失败。

从日志:

0 投票
2 回答
6887 浏览

java - 哪个休眠 jar 具有 OracleDialect 类?

我正在尝试通过一些应用程序安装 GridSphere,有一个创建数据库的 ant 任务。因此,我将 hibernate.properties 文件更改为使用 Oracle(而不是 HSQL),但出现此错误:

我的方言设置是:

我正在使用Oracle10g

0 投票
5 回答
55165 浏览

java - 如何解决休眠错误:实体映射中的重复列?

嗨,我有以下型号:

我收到了这个错误:

0 投票
2 回答
1668 浏览

java - 如何在hibernate 3中映射派生身份?

我有以下情况:

换句话说:A和B之间存在OneToOne关联。B是一个弱实体,它的Id是从A类派生的。

如本文所述,我已经测试了一些解决方案,例如在 @OneToOne 下添加 @PrimaryKeyJoinColumn 。但是我收到了这个错误:“org.hibernate.id.IdentifierGenerationException:必须在调用 save() 之前手动分配此类的 ID:B”
我不知道在这种情况下是否相关,但我使用的是 Oracle 11g .

更新

我认为我的方式是正确的。这是我的问题的实际状态:

现在的错误有点不同:

它试图在表 B 中找到列 A(而不是 AID)。我不知道如何指定列名是 B.AID 而不是 BA

0 投票
3 回答
3676 浏览

hibernate - 自动提交和 Spring 声明式事务

我有一个用Propagation.Required. 它执行三个独立的操作。

  1. 如果表 1 中没有记录,则从表 z 插入表 1
  2. 根据用户编辑/添加插入/更新表 1
  3. 从表 1 中删除 x 条记录

原谅我的无知,但所有这些不应该在单一事务下运行吗?从某种意义上说,如果第三个查询遇到异常,第一个和第二个回滚也不应该吗?在我的情况下不会发生这种情况。休眠自动提交设置会以任何方式影响 txn 边界吗?在我的情况下,自动提交设置为 true。我需要的是,只有在所有表都成功的情况下,才能在这些表中的任何一个中进行提交。