"CREATE SEQUENCE GEN_USUARIO_ID;"
E depois disso, utilizar este nome na entidade, mapeando da seguinte forma:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@SequenceGenerator(name = "INC_USUARIO", sequenceName = "GEN_USUARIO_ID")
@Table(name = "usuario")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "INC_USUARIO")
private Long id;
@Column
private String nome;
E o mapeamento do arquivo hibernate.cfg.xml fica normal.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="Hibernate" >
<!-- Database connection settings -->
<property name="connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
<property name="connection.url">jdbc:firebirdsql:localhost/3050:E:\Desenv\Base\base.fdb</property>
<property name="connection.username">sysdba</property>
<property name="connection.password">masterkey</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.FirebirdDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- property name="hibernate.hbm2ddl.auto">create</property> -->
<mapping class="br.com.viartes.entities.User" />
</session-factory>
</hibernate-configuration>
4 comentários:
Salvou minha Vida!!
Encontrei seu post tentando fazer funcionar um generator ao migrar do Hibernate 4.2.21 pro 5.0.9.
Além dos itens mencionados, foi necessário definir o atributo allocationSize da anotação @SequenceGenerator com o mesmo valor usado para incrementar o generator (no meu caso 1), caso contrário era gerado um número muito acima do esperado.
Depois de testar várias tentativas, finalmente consegui através deste post. Então, muito obrigado por compartilhar. Lembrando que no meu caso, foi necessário incluir algumas configurações do xml.
Postar um comentário