问题标签 [composite-id]

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

java - 具有复合 ID 的休眠映射问题

我在我的 java 应用程序中使用 hibernate3 来访问 sqlserver 2008 企业版。休眠映射使用复合 id,当我尝试加载模型时,它返回 null。我花了几天时间解决它,但仍然没有结果。复合 id 映射应该用于基于多个字段的 PK,但在我的表中没有这样的 PK,我想知道为什么 JBoss Hibernate Tool(eclipse 插件)使用复合 id 映射生成它?

我将不胜感激任何帮助或意见。

休眠模型:

}

}

休眠映射:

表转储:

桌子:

道代码:

0 投票
1 回答
1236 浏览

hibernate - JPA 实体——org.hibernate.TypeMismatchException

环境:JDK 1.6、JEE5 Hibernate Core 3.3.1.GA、Hibernate Annotations 3.4.0.GA DB:Informix

使用逆向工程从 db 模式创建我的持久性实体 [注意:这是我无法更改的工作模式]

选择 basic_auth_accounts org.hibernate.TypeMismatchException 列表时出现异常:为类 ebusiness.weblogic.model.UserAccounts 提供了错误类型的 id。预期:类 ebusiness.weblogic.model.UserAccountsId,得到类 ebusiness.weblogic.model.BasicAuthAccountsId

basic_auth_accounts 和 user_accounts 都具有复合主键和一对一关系。任何线索在这里做什么?这是非常重要的,我让它工作。在网上找不到任何实质性的解决方案,有人说创建一个hibernate已经完成的ID类,有人说没有一对一的关系。

请帮我!!

类的主要代码是:

0 投票
0 回答
2203 浏览

nhibernate - NHibernate,当数据库中存在列时无法加载实体

这可能是一个简单的问题,但我就是想不通。

我有一个与“地址”多对一的“公司”类,它与“城市”中的复合 id 多对一。当我加载“公司”时,它会加载“地址”,但如果我调用“地址”的任何属性,我会收到错误消息:

内部异常是:

我不明白的是我可以在 sql server 2005 中运行查询并且它可以工作,而且这两个列都存在于地址表中。

这是我的 HBM:

这是我调用公司的代码:

最后这是我得到错误的地方:

“用户”已经用上面的代码初始化:

谢谢。

0 投票
2 回答
346 浏览

.net - 是否可以有一个可以在 NHibernate 中编辑的复合 ID?

我有一种情况,我有许多列用作复合主键的表,

更糟糕的业务逻辑要求这些是可变的。

我正在使用 nhibernate 并且映射加载/保存这些没有问题。但是,当我调用更新时,我需要能够更新属性值并让这些更改反映在数据库中。

这是一个遗留系统,所以数据库结构没有变化(太可怕了)。

我可以用 nhibernate 做些什么来解决这个问题吗?nhibernate 甚至允许修改其密钥。

我正在使用:.net4.0、nhibernate 2.1、fluentnh 1.0 和 sql server 作为后端。

0 投票
1 回答
1411 浏览

nhibernate - nhibernate - 合并集合的问题

我有父母/孩子关系,孩子有复合ID

家长

孩子

我想要什么:1)从数据库中获取父级,关闭会话,将父级从服务传递给客户端 2)当父级从客户端返回时,将其及其所有子级保存在数据库中,在一个新会话中

在第 2 步中,我调用 var merge = Session.Merge(product);

我使用 Merge() 因为它似乎是使 NHib 处理子集合中添加/删除的元素的唯一方法。但是 nHibernate 重置了新添加的子项中的所有 id-s,所以我有 ParentId == 0 和 ChildId == 的新子项0. 所以问题是 - 如何告诉 NHibernate 保留在 Merge() 中传递的实体的 ID?.. 请帮助。

0 投票
1 回答
3824 浏览

fluent-nhibernate - Fluent NHibernate 映射 - 复合键

我正在尝试在 FNH 中映射以下表格/实体,但似乎无处可去!

(我应该注意我也在使用 S#arp Architecture 框架)

我读到在使用复合 id 时建议将复合 id 分成不同的类。 休眠复合键

我已经尝试了很多映射组合,以至于我现在完全糊涂了。

这是我最近拍的:

我在尝试生成映射时抛出了许多异常,其中最新的是:

有没有人看到我做错了什么明显的事情?我是 NH 和 FNH 的新手,这在这篇文章中可能很明显。:-) 另外,有没有人在使用 S#arp 架构时使用过这样的复合 ID?什么是最佳实践(除了使用代理键:-))?

非常感谢……对这篇长文感到抱歉。

0 投票
2 回答
27564 浏览

nhibernate - 使用 NHibernate 的复合键/ID 映射

我的数据库中有以下表格:

通常我会使用多对多关系映射“AnnouncementsRead”,但该表还有一个额外的“DateRead”字段。

到目前为止,我已经定义了以下实体:

使用以下映射:

但是,当我运行它时,我收到以下错误:

如果有人能指出我正确的方向,我将不胜感激。谢谢

0 投票
1 回答
1664 浏览

nhibernate - NHibernate 导航器映射到复合键问题的一部分 - 遗留数据库使用

我们有一个无法更改的遗留数据库。我们正试图转移到 NHibernate 而不是旧的 DataAccess 层,它是垃圾而且太慢了。

它有这样的表格:

GPI 表有 (PU_ID, PAR_ID, Data, Data2) 列
BLOCK 表有 (GA_ID, Data, PAR_ID) 列
COMPANY 表有 (PU_ID, Data) 列

我为上面的表格创建了这些映射:

GPI

堵塞

公司

这些课程非常简单明了。都实现了 Equals 和 GetHashCode 方法。

以下是可用的导航器列表:

  • GroupPartnerInterest.Company - 效果很好
  • Company.GroupPartnerInterests - 效果很好
  • GroupPartnerInterest.Company - 效果很好

这两个失败了:

  • Block.GroupPartner兴趣:

我有一个单元测试:

如果我在 GPI 映射测试中注释掉块导航映射并输出一些数据:

Block #1
公司 'LALA':
公司 'LALA SA':
Block #2 公司
'BG PO':
公司 'LIMPOPO': 公司 'HAHA': 公司'Other partner(s)' 公司: Block #4




但是测试失败并出现以下错误:

NHibernate.LazyInitializationException: Initializing[Model.EntityClasses.Block#999] - 无法延迟初始化角色集合:Model.EntityClasses.Block.GroupPartnerInterests,没有会话或会话已关闭。

'999' 是现有的 PAR_ID - 数据是一致的:有两个具有此 PAR_ID 的块和 GPI 中的一些记录。

为什么它会在某个时候关闭会话?

  • GroupPartnerInterest.Blocks:

单元测试与我上面提到的几乎相同,只是使用了不同的属性。错误如下:

NHibernate.MappingException:NHibernate.MappingException:找不到属性:实体 Model.EntityClasses.GroupPartnerInterest 上的 GroupId。

如果我从 GPI 映射中 Blocks navigator 的元素中删除“property-ref=GroupId”,我将得到以下异常:

NHibernate.FKUnmatchingColumnsException: NHibernate.FKUnmatchingColumnsException: 外键 (FKA3966498349694F:[BLOCK] [PAR_ID])) 的列数必须与引用的主键 ([GPI] [PAR_ID, PU_ID]) 的列数相同。

有没有办法将块映射到 GPI,以便 GroupPartnerInterest.Blocks 导航器可以工作?

谢谢,亚历克斯

0 投票
1 回答
2207 浏览

java - 具有组合主键的对象的 jpa 更新

我的对象有一个复合主键。如何使用 jpa 更新我的对象?

通常我们使用以下代码

现在,如果我有一个主键是复合的对象,那么我该如何实现更新?

0 投票
3 回答
37919 浏览

jpa - JPA - 标准 API 和 EmbeddedId

我想使用条件进行以下查询。我有一个定义了EmbeddedId的实体

我想要做的标准查询是:

但这会引发 IllegalArgumentException:

我也试过这个查询:

还有这个……

没有运气。所以我的问题是,当我的类使用 Embedded 和 EmbeddedId 注释时,如何使用标准进行查询?

谢谢!。毛罗。