1

Play アプリケーションでこのモデルを取得しました。

@Entity
@Table(name="SHOPPER")
public class User extends GenericModel {

    ...

    @OneToMany(cascade = CascadeType.ALL)
    @JoinColumn(name = "SASHNBR", insertable = true, updatable = true)
    public List<Direction> directions;
}

方向モデルは次のようになります

@Entity
@Table(name="SHADDR")
public class Direccion extends GenericModel {

    ...

    @Column(name="SASHNBR")
    @Required
    public Long idUser;
}

保存時にDirectionにidUserが生成されていないため、この方法ではエラーが発生します。

私もこの方法を試しました。

@Entity
@Table(name="SHOPPER")
public class User extends GenericModel {

    ...

    @OneToMany(cascade = CascadeType.ALL, mappedBy="user")
    public List<Direction> directions;
}

方向モデルは次のようになります

@Entity
@Table(name="SHADDR")
public class Direccion extends GenericModel {

    ...

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name = "SASHNBR", insertable = true, updatable = true)
    User user;
}

しかし、それもうまくいきませんでした。

誰かがこれで私を助けることができますか?

ありがとう!:)

4

2 に答える 2

2

子供たちを自分で救う必要があります。例については、チュートリアルを参照してください。

public User addDirection(Direction direction) {    
    this.directions.add(direction);
    this.save();
    return this;
}

@Override
public User save(){
    for (Direction dir : directions) {
        dir.save()
    }
    super.save()
    return this;
}
于 2012-07-23T07:07:17.953 に答える
1

次のようなことを試してください:

User user = new User();
// [...] call required setters of user object
for (int i=0; i<5; i++) {
    Direction direction = new Direction();
    direction.setUser(user);
    // [...] call other required setters of direction object
    user.getDirections().add(direction);
}
entitymanager.persist(user);
于 2012-07-23T07:06:50.483 に答える