问题标签 [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.
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()。
我的问题:
持久的用户实体会以任何方式改变我的单身“美国”国家实例吗?
由于其他一些原因,这完全是不可取的吗?
上面的两个类只是为了说明问题;我实际上并没有做那么愚蠢的事情。
hibernate - Hibernate:如何与另一个数据库进行一对多映射?
我有 2 个类:用户和消息。
一个用户可以有多个消息。
即这是一对多的关联。
我的 users 表在第一个数据库中,messages 表在第二个数据库中。
我怎样才能映射它们?
我的用户和消息表映射:
我还有 2 个 *.cfg.xml 文件,其中映射了这些类。
我的测试代码片段:
我收到一个错误:关联引用未映射的类:com.example.hibernate.Message
PS我的HibernateUtilUser类:
hibernate - 休眠@CollectionOfElements 未持久化
你好,
到目前为止,我在使用 Hibernate 时非常满意。最近,我似乎无法使用注释来保留 @CollectionOfElements 。
我正在保存类 Estate 的对象,其中包含 RoomGroups 的地图,如下所示:
RoomGroup 已正确持久化。RoomGroup 也与 MasterPrice 有关系
到目前为止一切顺利,MasterPrice 元素已正确存储在数据库中。现在在 MasterPrice 里面有另一个集合,这个集合似乎永远不会被持久化
MasterPriceItem 类是这样定义的
我还在 MasterPriceItem 中定义了 equal/hashCode 方法,但似乎 hibernate 永远不会保留这个方法。我没有得到任何异常,当我尝试加载它时,它总是显示为 NULL。
我正在使用 hibernate_3.3.1.ga 有什么想法可以尝试吗?类 MasterPriceItem 被 hibernate 正确分析[如果我把一个不在表中的字段,我得到一个错误]
任何帮助高度赞赏。谢谢。
java - 休眠地图>
我有以下表格:
我想在课堂上state
得到map<key, set<value>>
Map<Event, set<StateEventAction>>
我怎样才能在休眠中做到这一点?
hibernate - 是否可以在 Hibernate 3 中使用带有 XML 的一个 SessionFactory 使用多个数据库?
例如我可以使用catalog
属性还是schema
为它?
现在我使用了几个数据库和几个 sessionfactories,但我想通过外键在这些数据库之间创建关系,所以据我所知,我需要使用一个 SessionFactory。也许一些示例配置,我该如何实现?
提前致谢
java - 如何在 Hibernate 中映射多对一关联,其中子键具有复合键,其中一部分是父键中的主键?
我有一个(旧版)表结构,看起来有点像这样:
即child的部分主键是parent的主键。我试图像这样映射它(我们使用基于 xml 的 Hibernate):
Java类:
更新:我使用了错误的关系类型(更新),但现在我遇到了另一个问题:似乎在表中创建子行时,parentid 为空。由于 parentid 是复合键的一部分,因此它们插入失败。
从日志:
java - 哪个休眠 jar 具有 OracleDialect 类?
我正在尝试通过一些应用程序安装 GridSphere,有一个创建数据库的 ant 任务。因此,我将 hibernate.properties 文件更改为使用 Oracle(而不是 HSQL),但出现此错误:
我的方言设置是:
我正在使用Oracle10g
java - 如何解决休眠错误:实体映射中的重复列?
嗨,我有以下型号:
我收到了这个错误:
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
hibernate - 自动提交和 Spring 声明式事务
我有一个用Propagation.Required
. 它执行三个独立的操作。
- 如果表 1 中没有记录,则从表 z 插入表 1
- 根据用户编辑/添加插入/更新表 1
- 从表 1 中删除 x 条记录
原谅我的无知,但所有这些不应该在单一事务下运行吗?从某种意义上说,如果第三个查询遇到异常,第一个和第二个回滚也不应该吗?在我的情况下不会发生这种情况。休眠自动提交设置会以任何方式影响 txn 边界吗?在我的情况下,自动提交设置为 true。我需要的是,只有在所有表都成功的情况下,才能在这些表中的任何一个中进行提交。