我创建了一个使用hibernate继承和映射的应用程序。 有一个名为Payment和Child类的父类名为Credit。 我正在尝试为一个父ID插入多个子值。 如下所示
|``````````````|
| Payment |
|--------------|
| id | nane |
|-----|--------|
| 1 | mod 1 |
|-----|--------|
| 2 | mod 2 |
|-----|--------|
|````````````````````````````````|
| Credit |
|--------------------------------|
| id | payid | type | mode |
|-----|--------|-------|---------|
| 1 | 1 | 1 | m1 |
|-----|--------|-------|---------|
| 2 | 1 | 4 | m6 |
|-----|--------|-------|---------|
| 3 | 1 | 5 | m5 |
|-----|--------|-------|---------|
| 4 | 1 | 1 | m7 |
|-----|--------|-------|---------|
我的代码如下所示(有关地图和其他详细信息,您可以查看 THIS)
Payment tabletcstatus=new Payment();
tabletcstatus.setName("name 123");
session.save(tabletcstatus);
Credit c=new Credit();
c.setMode("mode 1");
c.setPayid(tabletcstatus);
session.save(c);
Credit c1=new Credit();
c1.setMode("mode 2");
c1.setPayid(tabletcstatus);
session.save(c1);
但是当我执行时,我正在执行以下操作
Hibernate: insert into hhh.payment (name) values (?)
Hibernate: insert into hhh.payment (name) values (?)
Hibernate: insert into credit (type, mode, payid) values (?, ?, ?)
Hibernate: insert into hhh.payment (name) values (?)
Hibernate: insert into credit (type, mode, payid) values (?, ?, ?)
这里付款被插入三次,两个信用卡有不同的付款方式
任何人都可以告诉我一些解决方案。
答案 0 :(得分:1)
您的映射有点“异国情调”,因为您有信用额度付款和付款也有一系列信用。不是我遇到的东西,但我想,如果这真的是你想要的,那么它应该有效。
关于第一个问题,您希望在付款中有多少条目?您创建三个“付款”1 x付款和2个积分,并使用加入表策略,因此3次插入是完全正确的。