我正在尝试使用我想要从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;
我在网上看到的所有例子都显示这个注释与@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;
答案 0 :(得分:3)
JPA只要求在@Id字段上支持@GeneratedValue。一些JPA实现(例如DataNucleus JPA)支持它,但不是全部支持它。
答案 1 :(得分:0)
我为JPA创建了一个提案,以支持{id}属性的@GeneratedValue
。请在此投票,以便将其纳入2.2
https://java.net/jira/browse/JPA_SPEC-113