我捕獲了json響應,我發現它是{「page」:「1」,「total」:「2」,「records」:「15」,「rows」:[{「id」:1, 「名字」: 「約翰」, 「姓氏」: 「史密斯」, 「用戶名」: 「約翰」, 「密碼」: 「21232f297a57a5a743894a0e4a801fc3」, 「角色」:空},{ 「ID」:2, 「名字」: 「Jane」,「lastName」:「Adams」,「username」:「jane」,「password」:「ee11cbb19052e40b07aac0ca060c23ee」,「role」:null},在Jackson系列化期間,子對象爲null?
我的用戶和角色類非常簡單,所以我我認爲我必須忽略一些微不足道的東西。
@Entity(name="user")
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String firstName;
private String lastName;
@Column(unique=true)
private String username;
private String password;
@JsonIgnore
@OneToMany(mappedBy="user", cascade={CascadeType.PERSIST, CascadeType.MERGE},fetch =FetchType.EAGER)
private List<Role> roles = new ArrayList<Role>();
public List<Role> getRoles() {
return roles;
}
public void setRoles(List<Role> roles) {
this.roles = roles;
}
@ManyToOne
private Role role;
public User() {}
public User(String username, String password, String firstName, String lastName, Role role) {
this.username = username;
this.password = password;
this.firstName = firstName;
this.lastName = lastName;
this.role = role;
}
public User(String username, String firstName, String lastName, Role role) {
this.username = username;
this.firstName = firstName;
this.lastName = lastName;
this.role = role;
}
public User(String username) {
this.username = username;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
}
@Entity(name="role")
public class Role implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@JsonIgnore
@ManyToOne
@JoinColumn (name = "user_id", nullable= true)
private User user;
private Integer role;
public Role() {}
public Role(Integer role) {
this.role = role;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Integer getRole() {
return role;
}
public void setRole(Integer role) {
this.role = role;
}
}
我想也
@JsonUnwrapped @ManyToOne私人角色的作用;
但這更糟,因爲在這種情況下,我的json根本沒有任何作用。 { 「ID」:1, 「名字」: 「約翰」, 「姓氏」: 「史密斯」, 「用戶名」: 「約翰」, 「密碼」: 「21232f297a57a5a743894a0e4a801fc3」},