GenerationType.SEQUENZ keine Sequenz zu erzeugen im Ruhezustand
Dies ist mein entity-Datei :-
@Entity
@Table(name = "tbl_article_function_instruction_status")
@XmlRootElement
public class ArticleFonctionInstructionStatuts extends BaseEntity implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "AFIS_Sequence")
@SequenceGenerator(allocationSize = 5000, name="AFIS_Sequence", sequenceName="AFIS_Sequence")
@Basic(optional = false)
@Column(name = "art_fun_ins_status_id")
private Integer afiStaIndex;
@Basic(optional = false)
@Column(name = "art_fun_ins_status_date")
@Temporal(TemporalType.TIMESTAMP)
private Date afiStaDate;
}
Habe ich versucht GenerationType.SEQUENCE
& GenerationType.AUTO
.
Aber im Fall von GenerationType.SEQUENCE
, es gibt mir eine Fehlermeldung :-
Verursacht durch: javax.die Persistenz.PersistenceException: [PersistenceUnit: default] kann Nicht zum erstellen der Hibernate SessionFactory
bei org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1239)
bei org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.access$600(EntityManagerFactoryBuilderImpl.java:120)
bei org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:855)
bei org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845)
bei org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398)
bei org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:844)
bei org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
bei org.springframework.orm.jpa.LocalContainerEntityManagerFactorybean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactorybean.java:343)
bei org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
bei org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1627)
bei org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1564)
42 mehr ...
Verursacht durch: org.hibernate.MappingException: Konnte nicht instanziiert id-generator [entity-name=com.alstom.autofie.Entität.ArticleFonctionInstructionStatuts]
bei org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:123)
bei org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:213)
bei org.hibernate.intern.SessionFactoryImpl.(SessionFactoryImpl.java:323)
bei org.hibernate.cfg.- Konfiguration.buildSessionFactory(Configuration.java:1859)
bei org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:852)
... 50 mehr
Verursacht durch: org.hibernate.MappingException: com.alstom.autofie2.dao.CustomSQLDialect unterstützt keine Sequenzen
bei org.hibernate.Dialekt.Dialekt.getSequenceNextValString(Dialekt.java:882)
bei org.hibernate.id.SequenceGenerator.konfigurieren(SequenceGenerator.java:110)
bei org.hibernate.id.SequenceHiLoGenerator.konfigurieren(SequenceHiLoGenerator.java:55)
bei org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:117)
... 54 mehr
Hier CustomSQLDialect ist eine Klasse, die sich SQLServerDialect.
Im Falle von GenerationType.AUTO
, es gibt mir eine Fehlermeldung beim einfügen von mehreren Datensätzen denn es erzeugt denselben Schlüssel die ganze Zeit, nicht sequentielle Schlüssel.
DEBUG IdentifierGeneratorHelper - Nativ generierten Identität: 0
Habe ich überprüft sql server, AFIS_Sequence ist das generieren von Sequenz, jedes mal. Das bedeutet, dass es einige Probleme mit der hibernate-Konfiguration.
Gibt es irgendeine Konfiguration übersehen, oder ist es ein bug von hibernate ?
InformationsquelleAutor unknown | 2015-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
CustomSQLDialect
erweitern sollteSQLServer2012Dialect
, da frühere Versionen nicht unterstützt-Sequenzen.InformationsquelleAutor Tobias Liefke
Wenn Sie
Sind Sie mit der auto-Inkrement, hibernate, aber wenn Sie
Verwenden Sie die auto-Inkrement Ihrer Datenbank
InformationsquelleAutor hide
Laut Hibernate 4.x Dokumentation, die wir haben:
Für die
GeneratorType.AUTO
Ihre Tabelle muss eineAuto Incremented Primary Key
.Haben wir auch:
Was ich sehen kann ist, dass Sie nicht korrekt angeben, die sequente Hibernate verwenden soll, diesem Beispiel zu Folgen:
Müssen Sie eine Sequenz erstellen, in Ihre Datenbank aus und geben Sie es zu Ihrem bean.
Edit:
Ich bin das hinzufügen von mehr Informationen:
AFIS_Sequence
in der Datenbank. Brauche ich zum erstellen einer bean mit dem NamenempSeqGen
?Ich bearbeitet habe, die Antwort, die ich Hinzugefügt mehr Informationen
InformationsquelleAutor José Mendes
Versuchen
@GeneratedValue(strategy=GenerationType.IDENTITY)
.Aber ich empfehlen, um zu verstehen, was jeder einzelne tun:
geeignete Strategie für die jeweilige Datenbank.
Schlüssel für die Entität mit einer Datenbank, identity-Spalte.
Schlüssel für die Entität, die mit Hilfe einer Datenbank-Sequenz.
Schlüssel für die Entität, die mit einer zugrunde liegenden Datenbank-Tabelle zu gewährleisten
die Einzigartigkeit.
Für weitere Informationen besuchen Sie bitte die Dokumentation.
InformationsquelleAutor Rafael S. Fijalkowski
InformationsquelleAutor Deepak