2016-04-12 12 views
0

Tüm kimliklerimde "id" için kullanmak istediğim özel bir SequenceGenerator uyguladık. Ama daha ziyade için her varlık this böyle bir şey yapmak zorunda kalmadan daha:Tüm varlıklar için Spring'te Hazırda Bekletme için özel bir SequenceGenerator nasıl kullanılır?

@Id 
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "XyzIdGenerator") 
@GenericGenerator(name = "XyzIdGenerator", 
     strategy = "com.mycompany.myapp.id.BigIntegerSequenceGenerator", 
     parameters = { 
      @Parameter(name = "sequence", value = "xyz_id_sequence") 
     }) 
public BigInteger getId() 
{ 
    return id; 
} 

Bahar kullanarak vanilya hazırda/JPA ya da belki kullanarak varsayılan olarak TÜM kuruluşlara bu SequenceGenerator uygulamak için bir yol var?

cevap

0

Kod segmentini bir süper sınıfa taşıyın, buna ekle @MappedSuperclass ekleyin. Ancak, bu durumda, tüm varlığınız aynı sıralı üreteci kullanır

@MappedSuperclass 
public class SeqIdable implements Serializable { 

    @Id 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "XyzIdGenerator") 
    @GenericGenerator(
    name = "XyzIdGenerator", 
    strategy = "com.mycompany.myapp.id.BigIntegerSequenceGenerator", 
    parameters = { 
     @Parameter(name = "sequence", value = "xyz_id_sequence") 
    }) 
    public BigInteger getId() { 
     return id; 
    } 

} 
İlgili konular