DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Video: Desvendando o JPA - Aula 4 - Chaves compostas

Nesta vídeo aula abordamos a prática rotineira de utilizar chaves compostas como CHAVES PRIMARIAS de uma tabela.

Título:

Tempo: 00:14:02

Mini-Resumo: Nesta vídeo aula abordamos a prática rotineira de utilizar chaves compostas como CHAVES PRIMARIAS de uma tabela. Mostramos como mapear este tipo de chave utilizando JPA e como expressar uma chave composta como um objeto (e não mais uma composição de campos). Abordamos problemas que podem ser encontrados e suas possíveis soluções.

Exemplos construídos: Construímos a entidade PeopleCP que é um clone da entidade People porem trabalha com chave composta. Mostramos os problemas tradicionais de se trabalhar com este tipo de abordagem e como JPA resolve eles. Imperdível para quem adora uma base de dados bem modelada e não abre mão da normalização extrema.

Tecnologias Utilizadas: Java SE 6, NetBeans 6.5, JPA 1.0, Hibernate 3.3 e TopLink Essentials

Palavras chaves: netbeans6 jpa hibernate orm java j2se java6





    10 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Paulo Jorge Carvalho Da Silva

estou acompanhando a 4 aula que trata de chave composta porém quando estou criando a tabela peopleCP com os campos id e seq o netbeans não permite tal operação, exibindo a mensagem: FOI ESPECIFICADA MAIS DE UMA RESTRIÇÃO DE CHAVE PRIMARIA PARA A TABELA PEOPLECP. Como podemos resolver a questão?

 
Obrigado,
 
Paulo Carvalho
[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
OI,

Poderia colar aqui a ENTIDADE e tambem o stack trace completo do erro ?
[há +1 ano] - Responder
 

Erika Lares
Boa noite,
Acompanho várias videos aulas sua e adoro, pois aprendo muito. Gostaria de sabe se tem como gerar um id auto-incremente em uma chave composta ?
Por exemplo estou fazendo um mini aplicação onde ao criar a tabela prontuario, a mesma terá uma chave composta com o id do paciente e o id do prontuario que gostaria que fosse auto-incremente.
[há +1 ano] - Responder

 

[autor] Dyego Souza Do Carmo
Opa !

Não , pois ela é composta , para esta funcionalidade voce deverá criar um trigger ! Ou uma sequence :)

[há +1 ano] - Responder
 

Leandro Henrique Perez
org.hibernate.connection.DriverManagerConnectionProvider configure
GRAVE: JDBC Driver class not found:
java.lang.ClassNotFoundException:
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
        at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:61)
        at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
        at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
        at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
        at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
        at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
        at aplicacao.TheAppClass.main(TheAppClass.java:27)
Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: proJPAPersistenceUnit] Unable to build EntityManagerFactory
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
        at aplicacao.TheAppClass.main(TheAppClass.java:27)
Caused by: org.hibernate.HibernateException: JDBC Driver class not found:
        at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:66)
        at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
        at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
        at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
        at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
        at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
        ... 4 more
Caused by: java.lang.ClassNotFoundException:
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
        at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:61)
        ... 11 more
Java Result: 1
[há +1 ano] - Responder
 

Leandro Henrique Perez
Resolvi meu problema descrito acima assim:

Vá nas propriedades do projeto (No NetBeans), em bibliotecas, Adicionar Jar/Pasta, e Adicione o jar que normalmente está em C:\Program Files\Sun\JavaDB\lib\derbyclient.jar.
[há +1 ano] - Responder

 

Maiara Brito
Olá,

Também estou com problemas para completar esse exemplo. No meu caso quanto a persistenceUnit esta com a biblioteca EclipseLink exibe o seguinte erro:

Exception in thread "main" java.lang.IllegalStateException:
Exception Description: No transaction is currently active
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.java:77)
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:63)
at...

Quando persistenceUnit esta com o TopLink exibi a seguinte mensagem:

INFO: Not binding factory to JNDI, no JNDI name configured
Exception in thread "main" java.lang.IllegalStateException: Transaction not active
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:47)

Sabe informar como resolvo?
[há +1 mês] - Responder

 

Maiara Brito
Resolvido.. estava faltando abrir a transação!
[há +1 mês] - Responder
 

Bruno De Souza
Boa tarde Dyego,

Estou criando um projeto onde tenho duas classe que se relacionam e formar uma terceira, seria o muitos para muitos. Mas esta terceira além de de guardar as chaves precisa guardar alguns dados adicionais como faço? Pensei em fazer um para muitos da terceira classe para as outras duas principais, mas esta terceira precisa de chave composta formada pelas duas, não tenho idéia de como resolver.

Poderia me ajudar?

Obrigado
[há 9 dias] - Responder

 

[autor] Dyego Souza Do Carmo
O JPA faz isso sozinho... nas proximas aulas tem exatamente o que vc esta pedindo... Muitos para mUitos :)

atenciosamente,
[há 5 dias] - Responder
 



Publicidade
Curso Online
Este post faz parte de:

Curso(s):
  •  Desvendando o JPA

    Formações:
  •  Formação Java web Developer
  • Autor
    Dyego Souza Do Carmo

    Engenheiro da Computação e evangelista da tecnologia Java , a mais de 15 anos especialista no sistema operacional linux. Programador Java a 8 anos sendo especialista em desenvolvimento de aplicações Java EE utilizando objetos distribuidos e Swing. Consultoria em Dúvidas - Http://www.forHelp.Us


    Space do autor
    Estatísticas
    Favorito:
    Comentários:
    Feedback:
    Utilidade:
    3   0
    [Fechar]

    Você precisa estar logado para dar um feedback.

    Clique aqui para efetuar o login
    [Fechar]


    Este post está fechado. Saiba mais sobre a assinatura MVP!
    web-03
    DevMedia  |  Anuncie  |  Fale conosco
    Hospedagem web por Porta 80 Web Hosting
    2012 - Todos os Direitos Reservados a web-03