首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时从JPA填充master-detail表

同时从JPA填充master-detail表
EN

Stack Overflow用户
提问于 2013-04-03 09:18:11
回答 1查看 1.8K关注 0票数 1

我有一个类似于hibernate示例中的双向实体:http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity-mapping-association

代码语言:javascript
复制
@Entity
public class Troop {
    @OneToMany
    @JoinColumn(name="troop_fk") //we need to duplicate the physical information
    public Set<Soldier> getSoldiers() {
    ...
}

@Entity
public class Soldier {
    @ManyToOne
    @JoinColumn(name="troop_fk", insertable=false, updatable=false)
    public Troop getTroop() {
    ...
}

现在我需要通过JSON将所有记录保存到2个表中,如下所示:

代码语言:javascript
复制
{
  "TroopName": "ABC", 
  "Soldiers": [{"Name":"Jack", "Age": "40"}, {"Name":"TOM", "Age": "30"}]
}

它将在部队表中插入1条记录,在士兵表中插入2条记录,这很好用。唯一的问题是士兵缺少外键。我认为这可能与填充soldier表时不生成troop.Id有关。那么,我如何将此id填充到士兵?

我正在使用spring mvc + spring roo + json支持。

EN

回答 1

Stack Overflow用户

发布于 2013-04-03 10:52:06

自答:问题是Spring Roo在没有设置back引用的情况下生成AspectJ代码来设置士兵(尽管我已经指定它是一个双向关系)。所以我必须自己添加它。

代码语言:javascript
复制
public void Troop.setSoldiers(Set<Soldier> soldiers) {
    this.soldiers= soldiers;  // spring roo only generate this line!

    // I add the following segment:
    for(Soldier soldier: soldiers) {
        soldier.setTroop(this);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15777267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档