Hibernate tratando todas as PKs como a mesma!

Boa Noite!

Estou desenvolvendo uma aplicação com Hibernate e Postgree, e percebi que ao salvar os registros o hibernate está tratando os index das tabelas como um só!
Cada tabela tem seu campo id, mas na hora de numerar o hibernate segue o seguinte:

Inseri na tabela x id=1
Inseri na tabela x id=2
Inseri na tabela y id=3
Inseri na tabela x id=4

Enquanto cada tabela deveria ter uma contagem própria:

Inseri na tabela x id=1
Inseri na tabela x id=2
Inseri na tabela y id=1
Inseri na tabela x id=3

Alguém tem idéia do que pode ser? :roll:

Mostre como configurou a geração do id no banco e no hibernate.

Olha… eu não configurei em lugar algum. Pensei que fosse algo default… :roll:

Minhas tabelas seguem o padrão:

[code]@Entity
public class Usuario {

@Id
@GeneratedValue
private Long id;
private String nome;
private String senha;
private String email;


[/code]

[code]@Entity
public class Categoria {

@Id
@GeneratedValue
private Long id;
private String descricao;


[/code]

Então devo especificar mais coisas ali no @Id ou no @GeneratedValue?

Você deve ter associado o mesmo nome de sequence em @GeneratedValue, ou pior, colocado a anotação em uma superclasse mapeada, o que realmente faria todo mundo usar a mesma sequence.

Alterei minhas classes para o seguinte:

[code]@SequenceGenerator(name=“seq”, sequenceName=“usuario_seq”)

@Entity
public class Usuario {

@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="seq")
private Long id;
private String nome;
private String senha;
private String email;


[/code]

Mas agora a seguinte exception ocorre quando vou fazer um insert:

[code]exception

javax.servlet.ServletException: could not get next sequence value
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:75)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

org.postgresql.util.PSQLException: ERROR: relation “subcategoria_seq” does not exist
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)

[/code]

Consegui!

Tive que apenas recriar o banco com as configurações novas do hibernate. :wink: