Fórum Utilizando Annotations em JPA #8500

10/08/2009

0

Bom dia caros amigos, gostaria de tirar uma dúvida. Eu andei vendo as video-aulas de JPA, do Dyego Carmo, e verifiquei um detalhe:

Ele usou

@Entity(name="xx")
@Table(name="xx") ,

Depois ele não utilizou mais o @Table, ou seja, apenas o @Entity(name="xx"). E tudo funcionava normalmente, porém ele não explicou no vídeo o porquê que não se utilizou mais o @Table, e eu gostaria de entender essa diferença.

Para que serve o @Table, se eu posso colocar dentro do meu persist unit <class></class> e utilizar somente o @Entity ?

É sempre melhor, ou seja, é bom uso de código, utilizar o @Table ? ou é melhor o jeito como citei em cima, add class dentro do persist unit e só utilizar o @Entity ?

Ou é porque era chave composta e ele não referenciou nenhuma Tabela ?

Eu já percebi que nem toda entidade no JPA será uma tabela no banco de dados, então vem outra pergunta, quando é que eu utilizo uma tabela como entidade ? Ou seja, quando é que eu vou ter uma tabela no banco de dados e que ela não seja uma entidade JPA?

Gostaria de obter um feedback de vocês.

Agradeço a atenção ! Obrigado.
Euclides Filizola

Euclides Filizola

Responder

Posts

10/08/2009

Henrique Weissmann

Se a tag table não for definida, o JPA entende que  a tabela possui o mesmo nome que a tabela, similar ao modo como o Hibernate mapeia suas classes de entidade às tabelas no banco de dados.
Responder

Gostei + 0

11/08/2009

Euclides Filizola

Então pelo que eu entendi, se  eu tiver uma tabela chamada Cliente e fizer:

@Entity(name="Cliente") 

é o mesmo que:

@Entity
@Table(name="Cliente") ?

E as demais perguntas ? Não me foram respondidas :(
Responder

Gostei + 0

11/08/2009

Henrique Weissmann

>Então pelo que eu entendi, se  eu tiver uma tabela chamada Cliente e fizer:
>@Entity(name="Cliente") 
>é o mesmo que:
>@Entity
>@Table(name="Cliente") ?

Nesta situação, sim. No entanto, acho que sempre é uma boa idéia incluir a anotação Table de qualquer maneira, nem que seja apenas para documentar, tornando explícito este mapeamento para aqueles que não dominem JPA ainda (pense no seu caso, por exemplo: você não sabia que a annotation Table é opcional quando o nome da tabela é igual ao nome da entidade)

> quando é que eu utilizo uma tabela como entidade ? Ou seja, quando é que eu vou ter uma tabela no banco > de dados e que ela não seja uma entidade JPA?

Lembre-se do seguinte: as tabelas no banco de dados são o resultado do seu processamento: explicando melhor, você só cria tabelas no banco de dados quando deseja armazenar os valores dos atributos das suas classes.

Sendo assim, se é de seu interesse que sua classe seja persistida como um registro em uma tabela de banco de dados, é interessante que você utilize uma tabela no BD para armazenar estas informações.

Quando uma tabela não precisa ser uma entidade do JPA? Simples, quando ela não faz parte do domínio da sua aplicação. Se você tem por exemplo em seu banco de dados uma tabela que não é utilizada pelo seu sistema, então não precisa criar uma classe de domínio para a representar.


Responder

Gostei + 0

11/08/2009

Euclides Filizola

Beleza Henrique. Muito obrigado. Obrigado pelas informações. Abraços.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar