1

我得到了以下代码,问题是子 Mmt 没有用 mmt.setMapMovAnomes(miMapMovAnomes) 填充 FK 如果我签入调试,对象 mmt,将数据放入父属性 MapMovAnomes,那么你不会出现任何错误,但如果您签入数据库,则 FK 字段为空。

@Test
public void creaMmt()
{
    Transaction tx = null
    Date fecha = getFecha("2012-12-09")
    Integer anho = fecha.year + 1900
    Integer mes = fecha.month
    Integer anomes = anho * 100 + mes
    Integer idmap = 10000
    Mmt mmt = new Mmt()
    MapMovAnomes miMapMovAnomes = new MapMovAnomes()
    Session session = staticFactory.getCurrentSession();
    tx = session.beginTransaction()

    Map miMap = session.get (Map.class, idmap)
        MapMovAnomesId mId = new MapMovAnomesId()
        mId.setAnho(anho)
        mId.setMes(mes)
        mId.setIdMap(idmap)
        miMapMovAnomes.setId(mId)
        miMapMovAnomes.setMap(miMap)
        session.save miMapMovAnomes
    mmt.setMapMovAnomes(miMapMovAnomes)
    mmt.setFechMovimiento(fecha)
    mmt.setCantidad(100)
    mmt.setClaveES("E")
    session.save mmt
    miMapMovAnomes.addMmt(mmt)

    tx.commit();
}

mmt的POJO中的关系

    @ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
        @JoinColumn(name = "id_map", referencedColumnName = "id_map", insertable = false, updatable = false),
        @JoinColumn(name = "anho", referencedColumnName = "anho", insertable = false, updatable = false),
        @JoinColumn(name = "mes", referencedColumnName = "mes", insertable = false, updatable = false) })
public MapMovAnomes getMapMovAnomes() {
    return this.mapMovAnomes;
}

public void setMapMovAnomes(MapMovAnomes mapMovAnomes) {
    this.mapMovAnomes = mapMovAnomes;
}

我还有以下关系: map -> mapMovAnomes 和 map -> mmt

@OneToMany(fetch = FetchType.LAZY, mappedBy = "map")
public Set<MapMovAnomes> getMapMovAnomeses() {
    return this.mapMovAnomeses;
}

public void setMapMovAnomeses(Set<MapMovAnomes> mapMovAnomeses) {
    this.mapMovAnomeses = mapMovAnomeses;
}

@OneToMany(fetch = FetchType.LAZY, mappedBy = "map")
public Set<Mmt> getMmts() {
    return this.mmts;
}

public void setMmts(Set<Mmt> mmts) {
    this.mmts = mmts;
}

我发现问题在于我有 map->MapMovAnomes -> mmt 和 map-> mmt,然后如果我取消关系 map->mmt,它工作正常,但是如何才能保持这种关系.

4

0 回答 0