我对我的实体有意见。我的交易是在这两个实体之间建立多对一的联系。我就是这样做的:
User user = new User();
user.setName("a");
user.setLastName("b");
Set<Adress> a = new HashSet<Adress>();
Adress a1 = new Adress();
Adress a2 = new Adress();
a1.setCity("a1");
a2.setCity("a2");
a.add(a1);
a.add(a2);
user.setAdress(a);
userProxy.save(user);我的胆子:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
@NotNull
private String name;
@NotNull
private String lastName;
@OneToMany(mappedBy="user", cascade=CascadeType.ALL)
private Set<Adress> adress = new HashSet<Adress>();
public User(String name, String lastName) {
this.name = name;
this.lastName = lastName;
}
public User() {
}
public Set<Adress> getAdress() {
return adress;
}
public void setAdress(Set<Adress> adress) {
this.adress = adress;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Long getId() {
return id;
}
}第二实体
@Entity
public class Adress {
@Id
@GeneratedValue(strategy=GenerationType.TABLE)
private Long id;
private String city;
@ManyToOne
@JoinColumn(name="user_id")
private User user;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Long getId() {
return id;
}
}表用户中的数据保存得很好,但是在表入口字段中,user_id是"NULL“,有人能向我解释为什么吗?我尝试了很多@ManyToOne的组合,但是对我来说没有什么效果。
有关更多细节,UserProxy:
@Service
public class UserProxyDao {
private UserDao userDao;
@Autowired
public UserProxyDao(UserDao userDao) {
this.userDao = userDao;
}
public void save(User user) {
userDao.save(user);
}
}但是,如果我将@NotNull放在字段用户的附件中,实体验证将失败.我真的不知道为什么
Caused by: javax.validation.ConstraintViolationException: validation failed for classes [pl.rd.j2ee.api.domain.Adress] during persist time for groups [javax.validation.groups.Default, ]发布于 2014-07-30 18:25:25
只要你先做这件事,你就应该能够在一个动作中做到这一点。
a1.setUser(user);
a2.setUser(user);您可以始终将User添加到您的Address构造函数中,并在那里执行。
public Address (User user) {
this.user = user;
}https://stackoverflow.com/questions/25025068
复制相似问题