2013-03-01 4 views
8

Hazırda bekleme aracını kullanarak diziyi oluşturmak istedim (pojo - sql). Ve kesinlikle iyi çalışıyor.Hazırda bekletme aracını kullanarak sıranın otomatik oluşturulma

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqid-gen") 
@SequenceGenerator(name = "seqid-gen", sequenceName = "RTDS_ADSINPUT_SEQ") 
@Column(name="id") 
public Long getId() { 
    return id; 
} 

Bu kod sql altında üretir

create sequence RTDS_ADSINPUT_SEQ; 

sorun aşağıda

CREATE SEQUENCE RTDS_ADSINPUT_SEQ MINVALUE 1 MAXVALUE 
999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE ORDER CYCLE ; 
gibi bazı şey olmalı

INCREMENT BY,NOCACHE CYCLE 

ve son ddl senaryosu gibi özelliklerini belirtmek istemiştim

Ancak Şu ana kadar sadece destek hazırda bekletildi name, sequncename,allocation,initialvalue

Bu özellikleri pojo'da ek açıklama olarak ekleyebiliyorsam lütfen bana bildirin.

cevap

7

Hazırda bekletilen kaynaklarda (4.2.7) baktım. Bunu bir ek açıklama ile belirtmek mümkün değildir (ne JPA ne de Hazırda Bekletme). Bununla birlikte, bunun için kendi Dialect'inizi sağlayabilirsiniz.

public class MyOwnOracleDialect extends Oracle10gDialect { 

    @Override 
    protected String getCreateSequenceString(final String sequenceName, final int initialValue, final int incrementSize) 
     throws MappingException { 
     String createSequenceString = super.getCreateSequenceString(sequenceName, initialValue, incrementSize); 
     return createSequenceString + " NOCACHE ORDER CYCLE"; // modify this string as you like 
    } 
} 

hazırda doc ( http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/ch03.html#configuration-optional-dialects)

0

Bunu

gibi bir şey arıyordum düşünüyorum açıklandığı gibi yeni Dialect ayarlayabilirsiniz bu

@Entity 
public class MyEntity { 

    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqid-gen") 
    @SequenceGenerator(name = "seqid-gen", sequenceName = "RTDS_ADSINPUT_SEQ", allocationSize = 1, initialValue = 0) 
    @Column(name="id") 
    private Long id; 

    // ... 

} 

gibi bir varlık var

<id name="pk_field" column="column_name"> 
     <generator class="sequence"> 
      <param name="sequence">sequence_name</param> 
      <param name="parameters">START WITH 5 INCREMENT BY 10</param> 
     </generator> 
    </id>