Hibernate:使用JPA的单个实体中的两个序列
我有一个使用JPA注释的映射类,我希望它对两个字段使用两个单独的序列:Hibernate:使用JPA的单个实体中的两个序列,hibernate,jpa,sequence,hibernate-annotations,Hibernate,Jpa,Sequence,Hibernate Annotations,我有一个使用JPA注释的映射类,我希望它对两个字段使用两个单独的序列: @Entity @Table(name="my_table", schema="schema") @SequenceGenerator(name="sequence",sequenceName="schema.local_key_sequence") @SequenceGenerator(name="orderSequence",sequenceName="schema.message_received_sequence"
@Entity
@Table(name="my_table", schema="schema")
@SequenceGenerator(name="sequence",sequenceName="schema.local_key_sequence")
@SequenceGenerator(name="orderSequence",sequenceName="schema.message_received_sequence")
public class MyClass
{
@Id
@Column(name="unique_key",unique=true)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sequence")
private long id;
@Column(name="sequence_received")
@GeneratedValue( strategy = GenerationType.SEQUENCE,generator="orderSequence" )
private long sequenceReceived;
[...]
}
但是,JPA禁止我在实体中使用@SequenceGenerator
。我该怎么做呢
注意:为了澄清,我希望ID是从
local\u key\u sequence
的下一个值自动生成的,sequenceReceived是从message\u received\u sequence
自动生成的。您只能在主键上使用由数据库值生成的
但是,如果只有字段sequenceReceived也是Id(复合Id的一部分),Hibernate(Hibernate Annotations项目)可以支持此功能