概述
http://www.huij.net/html/WEB_kaifa/JSP/20061021/33772.html
create table TAA(
FAIDint,
FAID2int,
FaNamevarchar(50),
CONSTRAINT PK_AA PRIMARY KEY (FAID,FAID2)
)
create table TBB(
FBIDint,
FAIDint,
FAID2int,
FbName varchar(50),
constraint PK_BB primary key (FBID),
CONSTRAINT FK_B_A FOREIGN KEY (FAID,fAId2) REFERENCES TAA(FAID,faId2)
)
我有如上两张表,复合主键的多对一关系,请问在HIBERNATE3 里面这两张表的映射应该是什么样的?用HIBERNATE自动生成的映射文件不符合我的要求.
学习 up
又是联合主键。。。已经有几篇帖子讨论过联合主键的问题了,再发表次愚见,HIBERNATE尽量不要使用联合主键
数据库原本就是这样设计的,并且使用多年,我不可能因为HIBERNATE不能实现就把数据库改啦,而且原有系统的改造势必造成更大的损失,所以没办法只好来此问问有没有谁也遇到过这种问题,希望能够得到一个可行的解决方法.
可是现在大多数代码都是基于HIBERNATE做的.要换也来不及啦.
人呢?
两种实现方法
1 复合主键由实体类中的属性组成
2 复合主键直接由类来实现
不建议使用联合主键不是因为HIBERNATE实现不了,而是使用HIBERNATE处理联合主键性能消耗巨大
各位我现在就想知道该如何实现或者有什么变通的方法来实现,网上能够找到的资料都是单主键的关联.
就上面两张表的关联各位老大能否给个确实能行的映射.
up
三个类吧
两个字段FAID,FAID2组成一个类,然后使用业务无关id做PK.
UP
D
看来这个问题是无法解决啦.
CPLiu(老了)"不建议使用联合主键不是因为HIBERNATE实现不了,而是使用HIBERNATE处理联合主键性能消耗巨大"
你先不用管我的机器性能是否消耗巨大,先给我实现这两张表的映射看看?
<many-to-one name="TAA" class="Taa" not-null="false" >
<column name="Faid" />
<column name="Faid2" />
</many-to-one>
<set name="TAABB" inverse="true">
<key>
<column name="Faid"/>
<column name="Faid2"/>
</key>
<one-to-many class="TBB"/>
</set>
字串4
TBB b = new TBB();
Session ms = HibernateSessionFactory.currentSession();
b = (TBB) ms.load(b.getClass(), 1);
System.out.println(b.getFbName());
System.out.println(b.getTAA().getId().getFaid());
System.out.println(b.getTAA().getId().getFaid2());
System.out.println(b.getTAA().getFaName());
System.out.println("---------------------");
Taa a = new Taa();
TAAPK key = new TAAPK();
key.setFaid(new Integer(1));
key.setFaid2(new Integer(2));
a = (Taa) ms.load(a.getClass(), key);
Iterator it = a.getTAABB().iterator();
System.out.println(a.getTAABB().size());
while (it.hasNext()) {
b = (TBB) it.next();
System.out.println(b.getFbName());
}
这么长时间以来没人解决,遗憾ing.....
结贴.给分,看来国内大多数人在用HIBERNATE的时候都没能够真正去研究.
而HIBERNATE的说明书也没有很好地对这个问题进行说明.不怪大家,感谢各位的参与.
分给有效的答案.
最后
以上就是幸福砖头为你收集整理的 复合主键的多对一问题,请问如何解决,已给出表结构.的全部内容,希望文章能够帮你解决 复合主键的多对一问题,请问如何解决,已给出表结构.所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复