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;
}

这样我就有一个错误,因为方向没有在保存时生成 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 回答