【发布时间】:2017-02-12 14:12:31
【问题描述】:
大家好,我有两节课
Admins.java
package com.spark.entites;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import com.fasterxml.jackson.annotation.JsonView;
import com.spark.View;
@Entity
public class Admins {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@JsonView(View.all.class)
private int idu;
@JsonView(View.all.class)
private String logins;
@JsonView(View.all.class)
private String password;
@JsonView(View.all.class)
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
@JoinColumn(name = "idr")
private Role role;
public int getIdu() {
return idu;
}
public void setIdu(int idu) {
this.idu = idu;
}
public String getLogins() {
return logins;
}
public void setLogins(String logins) {
this.logins = logins;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Admins(int idu, String logins, String password, Role role) {
super();
this.idu = idu;
this.logins = logins;
this.password = password;
this.role = role;
}
public Admins() {
super();
}
}
和 Role.java
@Entity
public class Role {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@JsonView(View.all.class)
private int idr ;
@JsonView(View.all.class)
private String role ;
public int getIdr() {
return idr;
}
public void setIdr(int idr) {
this.idr = idr;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public Role(int idr, String role) {
super();
this.idr = idr;
this.role = role;
}
public Role() {
super();
}
如您所见,我与这两个类有manyToOne 关系,我正在使用spring-boot 我有这样的存储库:
public interface AdminRepository extends JpaRepository<Admins, Integer>{
}
在控制器中:
@RestController
public class AdminsController {
@Autowired
AdminRepository adminRepository;
// this one to load R
@JsonView(View.all.class)
@RequestMapping(value = "/Admins/load")
public List<Admins> load() {
return adminRepository.findAll();
}
@RequestMapping(value = "/Admins/insert")
public void insertusers(Admins a) {
adminRepository.save(a);
}
}
在我的控制器中,当我尝试像这样插入 idr 值时,我有 2 个要加载的函数和要插入的函数:
http://localhost:8080/Admins/insert?logins=yosra&password=yossra&role.idr=1
我正在获取角色 null 的值
{
idu: 23,
logins: "yosra",
password: "yossra",
role: null
}
应该是这样的:
{
idu: 3,
logins: "bassem",
password: "admin",
role: {
idr: 1,
role: "Admin"
}
}
感谢任何帮助。
【问题讨论】:
标签: json spring web-services spring-boot spring-data-jpa