Galera, seguinte. Tenho 2 classes mapeadas com o seguinte relacionamento:
public class Usuario
{
@ManyToOne(fetch = FetchType.LAZY, optional = false)
private UsuarioSys usuarioFK
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
}
public class UsuarioSys
{
@OneToMany(fetch = FetchType.LAZY, mappedBy = "usuarioFK", cascade =
{ CascadeType.PERSIST, CascadeType.MERGE })
@Cascade(
{ org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
private List<Usuario> usuarios = new LinkedList<Usuario>();
}
A história é a seguinte, toda vez que eu quiser criar um usuario eu preciso criar um usuarioSys, estou tentndo fazer isso dando o cascade em save da seguinte forma:
public void saveUsuario(Usuario usuario){
UsuarioSys usuarioSys = new UsuarioSys();
usuarioSys.getUsuarios().add(usuario);
usuarioSysDao.save(usuario);
}
O problema é, meu usuario entra no metodo via BlazeDS com id=0 e nao com id null, entao na hora de dar o cascade ele tenta dar update no usuario com id=0 que não existe.
Vi que o hibernate tem alguma forma de setar uma opção “unsaved-value”, porém eu nao encontrei onde. Alguém já passou por este problema ou sabe como solucionar sem ter que settar na mão o atributo pra null?
Flw galera, um abraço.