从不更新左外连接记录多对多关系弹簧数据jpa

时间:2015-10-11 06:33:09

标签: java spring jpa

我有实体关系

@Entity Foo

//showing only mapping
@ManyToMany(cascade = {CascadeType.MERGE})
@JoinTable(name = "foo_bars",
           joinColumns = @JoinColumn(name = "foos_id"),
           inverseJoinColumns = @JoinColumn(name = "bars_id"))
    private List<Bar> bars;

和@Entity Bar是

//showing only mapping
@ManyToMany(mappedBy = "bars", cascade = {CascadeType.MERGE})   
private List<Foo> foos;

用一个/多个Bar保存一个Foo我有一个服务方法

    public void saveBar(Foo foo) {
        logger.info("calling saveBar method");
        barRepository.save(foo.getBars());      
    }


    public void save(Foo foo) {     
        fooRepository.save(obj);
        saveBar(obj);
    }

数据保存成功,但是当我需要更新Foo并添加/删除Bars时,事情会变得复杂,我有更新的服务方法

public void update(Foo foo) {
    fooRepository.update(foo.getId(), foo.getTitle());
    saveBar(foo);
}

更新方法确实更新了Foo,但没有更新相关的条形图,foo包含与新创建时相同的条形图。

我在那里犯的任何错误?

0 个答案:

没有答案