alguem poderia me dar um exemplo de uma entidade jpa sem PK?
thnkz…
alguem poderia me dar um exemplo de uma entidade jpa sem PK?
thnkz…
Caro mRc um dos requisitos básicos de uma entidade do JPA (e outras abordagens também) é ter uma identidade. (chave primária)
Então não há exemplos…
droga =T
e se minha modelagem precisar de uma tabela sem identificador?
só adicionando um id sequencial padrão? o jpa não oferece nenhuma forma de eu gerar a tabela sem id apartir de uma entidade??
Crie um “forçado”… Se você falar isso a um DBA uma tabela sem identificador ele te mata.
[quote=mRc]
só adicionando um id sequencial padrão? o jpa não oferece nenhuma forma de eu gerar a tabela sem id apartir de uma entidade??[/quote]
Depende de que id estamos falando da anotação ou do conceito de id (numero geralmente incrementável).
No entanto como dito antes é necessário a todas entidades do JPA ter um @Id mas não significa que este deve ser chamar Id ou que tenha que ser número (pode ser até mesmo outro objeto).
Dê uma olhada…
http://www.jpox.org/docs/1_2/jdovsjpa.html
Na verdade, o dba do projeto que pediu algumas tabelas sem identificador…
ele precisa de uma tabela sem chave primária…
estou pesquisando a dias como fazer isso com jpa mas nao consigo encontrar…
se souber um esquema de fazer isso eu agradeceria muito
thnkz
[quote] Na verdade, o dba do projeto que pediu algumas tabelas sem identificador…
ele precisa de uma tabela sem chave primária…[/quote]
Bem em todos os lugares que li, nunca vi alguém recomendando criar uma tabela sem uma chave.
[quote]estou pesquisando a dias como fazer isso com jpa mas nao consigo encontrar…
se souber um esquema de fazer isso eu agradeceria muito[/quote]
A especificação da JPA diz que uma entidade necessita ter um @Id, então você nunca vai encontrar como fazer isso.
A ideia de colocar um id forçado é boa…
seria um inteiro sequencial…
mas e se meu id estourar?
[quote]A ideia de colocar um id forçado é boa…
seria um inteiro sequencial…
mas e se meu id estourar?[/quote]
mRc não sei qual o banco relacional que você irá utilizar nem consigo dimensionar quantos registros terão.
Acredito que pode usar sem medo de ser feliz. Vá e seja feliz, se preferir tenha cautela veja a documentação do seu banco de dados para ver o tipo mais certo para seu caso. (acho díficil alguém estourar o padrão… )
[quote=mRc]A ideia de colocar um id forçado é boa…
seria um inteiro sequencial…
mas e se meu id estourar?[/quote]
se você achar que a quantidade de registros pode superar a representação de um inteiro(Integer) e estourar, usa um Long.
@Id != PK. parecem a mesma coisa, mas são conceitos um pouco diferentes.
vc pode usar uma coluna PK como @Id de seu objeto, mas isso não é obrigatorio. A unica coisa obrigatoria, como ja foi dito, é que seu objeto precisa de um identificador.
Resumindo, sua tabela pode não ter uma PK, mas seu objeto vai precisar de um Id@.
Faça como ja foi sugerido, crie um identificador para ser usado.E use Long como tipo.
[]´s
Hummm… acho que isso resolve!!!
valew pela ajuda galera!
[quote=jgbt]@Id != PK. parecem a mesma coisa, mas são conceitos um pouco diferentes.
vc pode usar uma coluna PK como @Id de seu objeto, mas isso não é obrigatorio. A unica coisa obrigatoria, como ja foi dito, é que seu objeto precisa de um identificador.
Resumindo, sua tabela pode não ter uma PK, mas seu objeto vai precisar de um Id@.
Faça como ja foi sugerido, crie um identificador para ser usado.E use Long como tipo.
[]´s
[/quote]
Mas é necessário que este campo da tabela seja único e não nulo? (mesmo que esse controle seja feito “na” mão mesmo)
o gerador de schema do jpa vai gerar uma pk para cada @id…
pelo que eu entendi da ideia do jgbt, a tabela do banco de dados nao poderia ser gerado, teria que ser feita de outra forma
teriamos que usar as classes de entidade jpa só como persistencia…
mas talvez isso possa dar erro quando for fazer uma pesquisa usando o @id da classe persistencia se a coluna da tabela não for unica…