我有一个使用JPA注释的映射类,我希望它为两个字段使用两个单独的序列:
@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
。我该怎么办呢。
注意:为了澄清,我希望从local_key_sequence
的下一个值自动生成ID,并从message_received_sequence
自动生成sequenceReceived。
答案 0 :(得分:0)
您只能在主键上使用Generated by database value。
然而,如果只有字段 sequenceReceived 也是Id(复合ID的一部分),Hibernate(Hibernate Annotations项目)可以支持此功能。