我有Usuario对象,我想将它更新到数据库中,但它只保存了一些属性的更改。
@Entity
public class Usuario {
@Id
String nombre_Usuario;
String contrasena;
String estado;
@OneToOne(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
@PrimaryKeyJoinColumn
Posicion miPosicion;
}
@Entity
public class Posicion {
@Id
int id;
float latitud;
float longitud;
float altura;
public Posicion() {
id = (int) Math.floor(Math.random()*1000);
latitud = longitud = altura = 0;
}
public Posicion(float alatitud, float alongitud, float aaltura) {
id = (int) Math.floor(Math.random()*1000);
latitud = alatitud;
longitud = alongitud;
altura = aaltura;
}
我正在使用restfull服务,当我想要更改我所做的对象时:
Usuario u = new Usuario();
u = todoService.obtenerUsuarioBusqueda("user_name"); //Here I get the object I want to change
u.setEstado("New Estado");
u.setmiPosicion(new Posicion(10,10,10));
todoService.saveUsuario(u);
public String saveUsuario(Usuario u){
try{
entityManager.merge(u);
}catch(Exception e){
return "false"+e.getMessage();
}
return "true";
}
我这样做是为了更新数据库中的对象。当我做一个查找(你)时,estado是“New Estado”,但当我尝试获取属性miPosicion时它是null。
在制作u.setmiPosicion()之后,如果我制作u.getmiPosicion()它是正确的,我设置的Posicion。但是当我从find(u)的对象中创建它时,它是null。