[英]Spring boot OnetoMany with JPA
我已經開始使用spring boot進行測試,以創建一個具有簡單crud函數的Restful webservice.i有兩個實體類
Company.java
@Entity
@Table(name="Company_new")
public class Company {
@Id
@NotNull
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
public Set<User> getUsers() {
return users;
}
public void setUsers(Set<User> users) {
this.users = users;
}
public void setId(int id) {
this.id = id;
}
@NotNull
@Column(name="name")
private String name;
@OneToMany(mappedBy="company",cascade=CascadeType.ALL)
private Set<User> users;
public Company(String name){
this.name = name;
}
public Company(){
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public int getId(){
return id;
}
}
和User.java
@Entity
@Table(name="user_new")
public class User {
@Id
@Column
@GeneratedValue(strategy = GenerationType.AUTO)
private int idUser;
@NotNull
@Column
private String name;
@NotNull
@Column
private String userName;
@NotNull
@Column
private String authLevel;
@Column
private String password;
@ManyToOne
@JoinColumn(name="idCompany")
private Company company;
// Public methods
public Company getCompany(){
return company;
}
public void setCompany(Company company){
this.company = company;
}
public void setName(String name){
this.name =name;
}
public void setUserName(String userName){
this.userName = userName;
}
public String getName(){
return this.name;
}
public String getUsername(){
return this.userName;
}
public String getPassword(){
return this.password;
}
public String getAuthLevel() {
return authLevel;
}
public void setAuthLevel(String authLevel) {
this.authLevel = authLevel;
}
public String getUserName() {
return userName;
}
public void setId(int idUser) {
this.idUser = idUser;
}
public void setPassword(String password) {
this.password = password;
}
public int getId(){
return this.idUser;
}
}
我希望與擁有眾多用戶的公司建立關系。 我試過像這樣預先存在用戶記錄
@Autowired
CompanyDao companyDao;
@RequestMapping(value = "/user/create", method = RequestMethod.POST)
public @ResponseBody ResponseEntity createUser(@RequestBody User user) {
try {
Company c = companyDao.findOne(user.getCompany().getId());
user.setCompany(c);
userDao.save(user);
} catch (Exception e) {
return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>(user, HttpStatus.OK);
}
我的數據以我想要的方式存在於數據庫中,但當我嘗試訪問公司記錄時,它會像這樣加載
很明顯,它會在一個循環中加載關系並最終產生堆棧溢出錯誤。 怎么解決這個?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.