JPA Duplicando Registros

3 respostas
H

Pessoal,

Criei 2 entity uma Usuario e uma Tarefas , ao inserir um registro na tabela de tarefas ele replica este registro para todos os usuarios cadastrados , alguém tem ideia do que pode ser?

Desde já , obrigado.

@Entity
public class Usuario implements Serializable {

	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = -8831910929335288880L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "usuario_id")
	private Long id;

	private String nome;

	private String cpf;

	private String email;

	@Column(unique = true)
	private String user;

	private String password;

	private String fraseSecreta;

	@Temporal(TemporalType.DATE)
	private Date dataAtualizacao;

	@OneToMany(cascade = CascadeType.ALL, mappedBy = "usuario")
	private Set<Tarefas> tarefas = new HashSet<Tarefas>();

	// Getters e Setters
@Entity
public class Tarefas implements Serializable {

	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = -3771042810761818766L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name="tarefa_id")
	private Long id;

	private String nome;

	@ManyToOne
	@JoinColumn(name="usuario_id", referencedColumnName="usuario_id")
	private Usuario usuario;

	// Getters e Setters

Método para incluir.

public Usuario obterIdUsuario(String usuario, String senha) {
		final String jpql = "from Usuario u where u.user = :user and u.password = :password";
		final Query query = this.entityManager.createQuery(jpql);
		query.setParameter("user", usuario);
		query.setParameter("password", senha);
		return (Usuario) query.getSingleResult();
	}

	public void salvaTarefa(String usuario, String senha, Tarefas tarefas) {
		Usuario user = new Usuario();
		user = obterIdUsuario(usuario, senha);
		tarefas.setUsuario(user);
		this.entityManager.persist(tarefas);
	}

3 Respostas

thiago.correa

O Id do objeto retornado pelo obterIdUsuario está vindo nulo! O getSingleResult só funciona quando você pesquisa pelo Id, se eu não estou enganado!

Hebert_Coelho

vc não está passando tarefas para usuário.
user.getTarefas().add(tarefas).

H

vc não está passando tarefas para usuário.
user.getTarefas().add(tarefas).

Cara adicionei la

public void salvaTarefa(String usuario, String senha, Tarefas tarefas) {
	Usuario user = new Usuario();
	user = obterIdUsuario(usuario, senha);
	user.getTarefas().add(tarefas);
	tarefas.setUsuario(user);
	this.entityManager.persist(tarefas);
}

Agora esta causando a exception:

18:31:01,468 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple@4cd32e java.lang.StackOverflowError at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:339) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:411) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138) at br.henriquetorres.ejb.entity.Tarefas.hashCode(Tarefas.java:65) at java.util.AbstractSet.hashCode(AbstractSet.java:109) at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:412) at br.henriquetorres.ejb.entity.Usuario.hashCode(Usuario.java:138)

Criado 30 de maio de 2012
Ultima resposta 30 de mai. de 2012
Respostas 3
Participantes 3