Problema com save em cascade, Update ao invés de Insert

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.

o Campo id provavelmente é um Integer e Int não tem Null. Int tem 0.
Ou seja… você sempre vai receber um valor integer 0, não sendo null. Isso é natural.

Talvez voce possa setar seu id Assim

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;