使用hibernate进行多个子插入的父表

时间:2013-11-08 07:12:05

标签: java hibernate inheritance insertion

我创建了一个使用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 (?, ?, ?)

这里付款被插入三次,两个信用卡有不同的付款方式

任何人都可以告诉我一些解决方案。

1 个答案:

答案 0 :(得分:1)

您的映射有点“异国情调”,因为您有信用额度付款和付款也有一系列信用。不是我遇到的东西,但我想,如果这真的是你想要的,那么它应该有效。

关于第一个问题,您希望在付款中有多少条目?您创建三个“付款”1 x付款和2个积分,并使用加入表策略,因此3次插入是完全正确的。