0

JPA アノテーションを使用するマッピング クラスがあり、2 つのフィールドに対して 2 つの別々のシーケンスを使用する必要があります。

@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;
    [...]
}

@SequenceGeneratorただし、JPAでは、エンティティ内での使用が禁止されています。どうすればいいですか。

注: 明確にするために、ID を の次の値から自動的に生成しlocal_key_sequence、sequenceReceived をから自動的に生成するようにしmessage_received_sequenceます。

4

1 に答える 1

0

Generated by database の値は、主キーに対してのみ使用できます。

ただし、Hibernate (Hibernate Annotations プロジェクト) は、フィールドsequenceReceivedのみが Id (複合 Id の一部) である場合にこれをサポートできます。

于 2011-06-16T19:41:21.040 に答える