休息服务,不更新对象的某些属性

时间:2014-08-22 17:49:56

标签: java mysql rest jpa merge

我有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。

0 个答案:

没有答案