Olá pessoal,
Notei que algumas pessoas utilizam a anotation @SequenceGenerator e outras não. No meu caso não funcionou sem ela.
Alguém sabe me explicar porque utilizá-la? Mesmo por que eu já estou mapeando a propriedade com @GeneratedValue.
Vlw
@SequenceGenerator(name = "SEQ_USUARIO", sequenceName = "SEQ_USUARIO", allocationSize=1)
public class Usuario implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_USUARIO")
private Integer id;
Colega,
O @SequenceGenerator, como o próprio nome já diz, usa a tabela sequence do banco de dados. Nem todo banco de dados tem suporte a sequence (ex.: mySQL não tem e Postgres tem), então, para tornar sua aplicação portável entre banco de dados (ou pelo menos facilitar sua migração), utilize @TableGenerator, que se baseia em uma tabela criada por você para guardar os sequenciais das entidades.
Abraço
Isso faz o Hibernate/JPA gerar as sequences pra vc.
O @GeneratedValue apenas indica que esse campo terá seu valor resolvido de forma automática.
Mais uma vez, muito obrigado amigos do GUJ!
Abraços!