2013-03-06 6 views
5

Sto tentando di mantenere un'entità con un attributo che desidero essere popolato da una sequenza DB. Sto usando Oracle, ho creato la sequenza, verificato che la sequenza funzioni tramite sql, eppure il mio attributo non viene popolato. Ecco quello che ho:JPA: utilizzo di @GeneratedValue sulla colonna non id

@GeneratedValue(generator = "RFQ_LINE_IDS_SEQUENCE", strategy=GenerationType.SEQUENCE) 
@SequenceGenerator(name="RFQ_LINE_IDS_SEQUENCE", sequenceName="RFQ_LINE_IDS_SEQUENCE", allocationSize=1000000000) 
@Column(name = "external_line_item_id") 
private String externalLineItemId; 

Tutti gli esempi che sto visto online Show Questa annotazione viene utilizzato con @Id, ma ho un altro attributo che sto usando per il mio id.

Ho anche provato il seguente inutilmente:

@GeneratedValue(generator = "RFQ_LINE_IDS_SEQUENCE", strategy=GenerationType.SEQUENCE) 
@GenericGenerator(name = "RFQ_LINE_IDS_SEQUENCE", strategy = "sequence", 
    parameters = {@Parameter(name = "sequence", value = "RFQ_LINE_IDS_SEQUENCE")}) 
@Column(name = "external_line_item_id") 
private String externalLineItemId; 
+0

Ugh ... Ho appena realizzato questo può essere un DUP: [hibernate-APP-sequenza-non-id] [1] [1 ]: http://stackoverflow.com/questions/277630/hibernate-jpa-sequence-non-id – fmpdmb

risposta

3

JPA mandati solo il supporto per @GeneratedValue sui campi @id. Alcune implementazioni JPA (come DataNucleus JPA) lo supportano ma non tutte lo fanno.

Problemi correlati