【发布时间】:2017-03-09 16:38:54
【问题描述】:
我有以下模型类:
public class Users implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "iduser")
private Integer idUser;
@Basic(optional = false)
@Column(name = "passwd")
private String passwd;
@JoinColumn(name = "idusersgroup", referencedColumnName = "idusersgroup")
@ManyToOne(optional = true)
private UsersGroups idUsersGroup;
.
.
.
}
public class UsersGroups implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idusersgroup")
private Integer idUsersGroup;
@Basic(optional = false)
@Column(name = "description")
private String description;
.
.
.
}
所以我写了一个访问Users数据的服务:
@POST
@Consumes("application/json")
public Response createUser(Users user) {
Users login;
UsersDAO u = new UsersDAO();
if(user.getLogin() == null || user.getDescription() == null ||
user.getNif() == null || user.getPasswd() == null)
return Response.status(Response.Status.BAD_REQUEST).entity("Missing information").build();
try{
u.addUser(user);
}catch(HibernateException e){
return Response.status(Response.Status.BAD_REQUEST).entity("User already exists").build();
}
return Response.status(Response.Status.CREATED).build();
}
问题是我不想将关系的参数作为 JSON 中的对象传递,而只是传递它的 id。像这样的:
{
"login": "admin2",
"passwd": "12345",
"idusersgroup": 1
}
但是通过这个实现,idUsersGroup 应该是UsersGroup 的一个实例,而不是它的 id。
实现这一目标的最佳方法是什么?改变关系在模型类中的实现方式?更改 JSON 对象的格式以将 idUsersGroup 呈现为嵌套对象?还有其他选择吗?我是 hibernate 的新手,仍然理解在每种情况下应该如何定义关系
【问题讨论】:
标签: hibernate rest jersey jax-rs