【发布时间】:2017-05-24 17:05:31
【问题描述】:
这里我有两个实体类。我使用了 OneToMany 和 ManyToOne 映射。
@Entity
@Table(name="test_user")
public class TestUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer user_id;
private String user_name;
@OneToMany(mappedBy = "testuser", fetch=FetchType.EAGER, cascade = CascadeType.ALL)
private Set<UserAnswer> answer = new HashSet<UserAnswer>();
public Set<UserAnswer> getAnswer() {
return answer;
}
public void setAnswer(Set<UserAnswer> answer) {
this.answer = answer;
}
public Integer getUser_id() {
return user_id;
}
public void setUser_id(Integer user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
}
这是我的第二个实体类
@Entity
@Table(name="user_answer")
public class UserAnswer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer answer_id;
private String answer;
@ManyToOne
@JoinColumn(name="user_id")
private TestUser testuser;
public TestUser getTestuser() {
return testuser;
}
public void setTestuser(TestUser testuser) {
this.testuser = testuser;
}
public Integer getAnswer_id() {
return answer_id;
}
public void setAnswer_id(Integer answer_id) {
this.answer_id = answer_id;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
}
当我插入用户并回答时,user_id 没有存储在 user_answer 表中。 这是我的 JSON 输入格式。
{
"user_name":"myname",
"answer":[
{
"answer":"myanswer"
}
]
}
当我获取数据时,我会收到这样的 JSON 响应,
[
{
"user_id": 52,
"user_name": "myname",
"answer": []
}
]
这是我的服务代码sn-p,
@Autowired
private TestUserRepository repo;
@Override
public TestUser addUser(TestUser user) {
return repo.save(user);
}
这是我的控制器代码 sn-p
@Autowired
private TestUserApiService service;
@RequestMapping(value = "/saveuser", produces = { "application/json" }, consumes = { "application/json" }, method = RequestMethod.POST)
public ResponseEntity<TestUser> addUser(@RequestBody TestUser user)
throws NotFoundException {
return new ResponseEntity<TestUser>(service.addUser(user),
HttpStatus.OK);
}
【问题讨论】:
-
如何插入?分享您的服务代码
-
我已经包含了我的服务和控制器代码
标签: spring hibernate spring-mvc spring-boot spring-data