Relacionamento OnetoOne Bidirecional - Excluir entidade filha ao setar nulo na entidade pai

12 respostas
R

Bom dia. Estou fazendo um relacionamento simples onetoone bidirecional usando jpa/hibernate.
Segue minhas entidades.

public class Pessoa {
	@Id
	private Integer codEntidade;
	@OneToOne(mappedBy = "codEntidade", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval=true)
	private PessoaFisica fisica;
getters e setters...
}
@Entity
public class PessoaFisica {
	@Id
	@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JoinColumn(name = "codEntidade")
	private Pessoa codEntidade;
getters e setters...
}

Gostaria que quando eu fizesse esse código abaixo, ele excluísse a entidade PessoaFisica. Obs: O registro de codigo 1 já está cadastrado no banco e a pessoafisica tambem.

Pessoa p = new Pessoa();
p.setCodEntidade(1);
p.setFisica(null);
em.merge(p);

Mas quando eu executo esse código ele gera muitos erros.

Obrigado.

12 Respostas

drsmachado

Por que não usa o remove?
E quais são os erros?

R

Qual o erro ?

Hebert_Coelho

Qual o erro?

R

Eu gostaria que fosse automático, por isso não usei o remove, mas se não tiver jeito vou ter que usar.
É uma lista de erro gigante. Da até erro ao inserir aqui no forum. Isso é apenas o começo do erro.

Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
	at java.util.HashMap.hash(Unknown Source)
	at java.util.HashMap.getEntry(Unknown Source)
	at java.util.HashMap.get(Unknown Source)
	at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1127)
	at org.hibernate.internal.SessionFactoryImpl.getIdentifierType(SessionFactoryImpl.java:1213)
	at org.hibernate.type.EntityType.getIdentifierType(EntityType.java:546)
	at org.hibernate.type.EntityType.getIdentifierOrUniqueKeyType(EntityType.java:571)
	at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:109)
	at org.hibernate.type.ComponentType.getColumnSpan(ComponentType.java:111)
	at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:109)
	at org.hibernate.type.ComponentType.getColumnSpan(ComponentType.java:111)
	at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:109)
	at org.hibernate.engine.internal.JoinHelper.getAliasedLHSColumnNames(JoinHelper.java:86)
	at org.hibernate.engine.internal.JoinHelper.getAliasedLHSColumnNames(JoinHelper.java:53)
	at org.hibernate.loader.JoinWalker.walkEntityAssociationTree(JoinWalker.java:390)
	at org.hibernate.loader.JoinWalker.walkEntityTree(JoinWalker.java:520)
	at org.hibernate.loader.JoinWalker.walkEntityTree(JoinWalker.java:293)
	at org.hibernate.loader.AbstractEntityJoinWalker.initAll(AbstractEntityJoinWalker.java:85)
	at org.hibernate.loader.entity.EntityJoinWalker.<init>(EntityJoinWalker.java:94)
	at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:137)
	at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:87)
	at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:61)
	at org.hibernate.loader.entity.BatchingEntityLoader.createBatchingEntityLoader(BatchingEntityLoader.java:151)
	at org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader(AbstractEntityPersister.java:2456)
	at org.hibernate.persister.entity.AbstractEntityPersister.getAppropriateLoader(AbstractEntityPersister.java:3918)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3886)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:616)
	at org.hibernate.type.EntityType.resolve(EntityType.java:441)
	at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
	at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:780)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:659)
	at org.hibernate.loader.Loader.doQuery(Loader.java:874)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)

Obrigado pela resposta.

Hebert_Coelho

Seu relacionamento tá bidirecional… a pessoa fisica ainda aponta para a pessoa.

R

Isso, eu queria que a chave primaria de Pessoafisica fosse Pessoa. No banco de dados ficaria a tabela pessoa(CodPessoa PK, …) e a tabela PessoaFisica (CodPessoa PK/FK).
Obrigado

Hebert_Coelho

rkrterada:
Isso, eu queria que a chave primaria de Pessoafisica fosse Pessoa. No banco de dados ficaria a tabela pessoa(CodPessoa PK, …) e a tabela PessoaFisica (CodPessoa PK/FK).
Obrigado
Isso oq? O.o

Eu falei seu problema. =P

faça pessoa.getFisica().setPessoa(null) e depois p.setFisica(null);

R

Ops, entendi errado. Mals.

O erro continua. Neste caso, qual a melhor maneira? Remover pessoafisica e depois salvar pessoa?? Tïpo assim?

Hebert_Coelho

rkrterada:
Ops, entendi errado. Mals.

O erro continua. Neste caso, qual a melhor maneira? Remover pessoafisica e depois salvar pessoa?? Tïpo assim?

<blockquote>

em.remove(pessoaFisica);

em.merge(pessoa);

</blockquote></blockquote>Creio que dará erro. Você fez teste?
R

Cara, desculpa a demora. Estava fazendo uns testes aqui e descobri que o erro estava no em.find(id).

Então eu coloquei meu relacionamento como Lazy e parou de dar erro.

Obrigado pela força.

Hebert_Coelho

rkrterada:
Cara, desculpa a demora. Estava fazendo uns testes aqui e descobri que o erro estava no em.find(id).

Então eu coloquei meu relacionamento como Lazy e parou de dar erro.

Obrigado pela força.

A gente estava falando de delete… o loco!

R

Esse meu código ta meio loko. Ta dando erro direto no find.

Ele fica retornando um monte de select, mesmo eu passando o id.

Se eu coloco meu relacionamento como EAGER ele da esse erro loko.
Se eu coloco meu relacionamento como Lazy ele da esse erro aqui:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:2322)
	at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:667)
	at org.hibernate.type.EntityType.resolve(EntityType.java:444)
	at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:168)
	at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:134)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1019)
	at org.hibernate.loader.Loader.doQuery(Loader.java:898)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:2006)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
	at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
	at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
	at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
	at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
	at org.hibernate.internal.SessionImpl.access$2000(SessionImpl.java:175)
	at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load(SessionImpl.java:2424)
	at org.hibernate.internal.SessionImpl.get(SessionImpl.java:974)
	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:807)
	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:781)
	at br.com.emdurb.geral.dao.Dao.buscar(Dao.java:54)
	at br.com.emdurb.tesis.dao.DaoPessoa.get(DaoPessoa.java:38)
	at br.com.emdurb.tesis.CadEntidade.excluir(CadEntidade.java:834)
	at br.com.emdurb.tesis.CadEntidade.actionPerformed(CadEntidade.java:1126)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.WaitDispatchSupport$2.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Achei que tivesse resolvido, mas não resolveu não.

Criado 26 de fevereiro de 2013
Ultima resposta 26 de fev. de 2013
Respostas 12
Participantes 4