JPA:在非id列上使用@GeneratedValue

fmp*_*dmb 5 jpa

我试图坚持一个具有我想要从DB序列填充的属性的实体.我正在使用Oracle,创建了序列,通过sql验证了序列的工作原理,但我的属性却没有填充.这就是我所拥有的:

@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;
Run Code Online (Sandbox Code Playgroud)

我在网上看到的所有例子都显示这个注释与@Id一起使用,但我有另一个属性,我正在使用我的id.

我也试过以下无济于事:

@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;
Run Code Online (Sandbox Code Playgroud)

Dat*_*eus 4

JPA 仅要求在 @Id 字段上支持 @GenerateValue。一些 JPA 实现(例如DataNucleus JPA)支持它,但并非全部都支持。