Hibernate @GeneratedValue

12 respostas
J

Tem a possibilidade de esta anotação num campo que nao seja @Id.
Exemplo:

@SequenceGenerator(name="CODE",sequenceName="GEN_CODE")  
  @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="CODE")
  @NotNull
	private Long codesec;

So que eu dou sysout no console depois que eu mando salvar ele nao carrega o valor gerado porque alguem pode me ajudar.

Obrigado !!!
JVDS

12 Respostas

rsakurai

Posta o código que vc usou para salvar e apresentar (System.out.println()) o valor do campo.

J
@Transactional
	@Override
	public void adiciona(final Object obj) {
		// TODO Auto-generated method stub
		super.getHibernateTemplate().saveOrUpdate(obj);
	}
rsakurai

Qual o banco de dados que vc esta usando?

Kanin_Dragon

Jovem,

Esta anotação pode ser utilizada em outros campos da tabelas mesmo que não seja PK.

Verifque se o usuário tem privilegio para a sequence no banco de dados.

Abs,

A

Simplesmente não grava??? não gera erro ?? nada ???

seu banco é oracle ??

[]'s

Kanin_Dragon

alex.brito:
Simplesmente não grava??? não gera erro ?? nada ???

seu banco é oracle ??

[]'s

Jovem,
por favlor colabore com sugestões construtivas.

sem mais,

J

Kanin Dragon:
Jovem,

Esta anotação pode ser utilizada em outros campos da tabelas mesmo que não seja PK.

Verifque se o usuário tem privilegio para a sequence no banco de dados.

Abs,


Ola estou usando firebird e logado como SYSDBA o mais estranho do que eu pude a entender que neste meu caso nao sei se isso e devido ao banco FB so funciona junto com a anotacao @Id.

A

Kanin Dragon:
alex.brito:
Simplesmente não grava??? não gera erro ?? nada ???

seu banco é oracle ??

[]'s

Jovem,
por favlor colabore com sugestões construtivas.

sem mais,

Como posso colaborar, se não tenho informações suficientes ?.
Não sou nenhum “mestre Kanin (mãe dinah)”, sou só um bebado …

Quanto mais informações tivermos, facilmente indentificaremos possíveis problemas.

[]'s

rsakurai

Coloca o allocationSize=1 no @SequenceGenerator

A

Será que realmente dá para utilizar a anotação fora de uma PK ???

http://download.oracle.com/javaee/5/api/javax/persistence/GeneratedValue.html

Alguém consegue disponibilizar um exemplo ??

[]'s

J

rsakurai:
Coloca o allocationSize=1 no @SequenceGenerator

Nao resolveu, esta parecendo o seguinte se nao tiver a anotação @Id não rola.

darkan666

Desenterrando o tópico por uma boa causa !!! tenho uma solução para este problema :smiley:
testei com postgresql e deu certinho…

tentem assim:

//coluna id
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	
	//coluna non-id
	@Column(columnDefinition="serial")
	@Generated(GenerationTime.INSERT)
	private Long cod;

abraços !

Criado 19 de maio de 2011
Ultima resposta 18 de dez. de 2013
Respostas 12
Participantes 5