2010-06-17 15 views
7

Bütün varlıklar @IdNeden hibernate_sequence adlı bir sıra, Oracle 10g dialect ile Hazırda Bekleme kullanılarak JPA ile oluşturuluyor?

@Id 
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MYENTITY_SEQ") 
@SequenceGenerator(name = "MYENTITY_SEQ", sequenceName = "MYENTITY_SEQ") 
@Column(name = "MYENTITY", nullable = false) 
private Long id; 

veya

@Id 
@Column(name = "MYENTITY") 

Ben hibernate_sequence adlı bir Oracle dizisi hep yaratılmış olduğunu fark bu tip kullanın. Bu neden böyle? Ve bundan nasıl kurtulabilirim?

JPA1'i Hibernate 3 ve Oracle 10g dialect ile kullanıyorum. PropertiesHelper.getString(String, Properties, String) üçüncü parametre varsayılan özellik değeri olan

public void configure(Type type, Properties params, Dialect dialect) throws MappingException { 
    ObjectNameNormalizer normalizer = (ObjectNameNormalizer) params.get(IDENTIFIER_NORMALIZER); 
    sequenceName = normalizer.normalizeIdentifierQuoting(
      PropertiesHelper.getString(SEQUENCE, params, "hibernate_sequence") 
    ); 
    parameters = params.getProperty(PARAMETERS); 

    if (sequenceName.indexOf('.') < 0) { 
     final String schemaName = normalizer.normalizeIdentifierQuoting(params.getProperty(SCHEMA)); 
     final String catalogName = normalizer.normalizeIdentifierQuoting(params.getProperty(CATALOG)); 
     sequenceName = Table.qualify(
       dialect.quote(catalogName), 
       dialect.quote(schemaName), 
       dialect.quote(sequenceName) 
     ); 
    } 
    else { 
     // if already qualified there is not much we can do in a portable manner so we pass it 
     // through and assume the user has set up the name correctly. 
    } 

    this.identifierType = type; 
    sql = dialect.getSequenceNextValString(sequenceName); 
} 

:

+1

Eğer hiçbir özniteliği olmadan @GeneratedValue() ile açıklamalı Teşekkülün kimliği @ herhangi beyan yok emin misin ??? –

cevap

-3

Bunun nedeni, varlıklarımı iki kez kontrol ettiğim ve hepsinin doğru @Id eşlemelerine sahip olduğum için Hazırda Beklet'i kullanıyorum.

+4

ve bunun için çözüm neydi? – cachiama

4

ben org.hibernate.id.SequenceGenerator aşağıdaki kodu bakın.

Bu yüzden, bir yerlerde, Id "düzgün" açıklamalı olmayan bir açıklamaya sahip olduğunuzu söylemeye çalışıyorum. Belki de küçük bir hata ayıklama oturumu gerçekleştirmelisiniz.

İlgili konular