2017-11-16 14 views
1

私は、ユーザがプライマリキーの値を入力する場合、エンティティを作成するときにその値を使用する必要があります。キーはR00001、R0002などのように自動生成される必要があります。私はこれとどのようなガイダンスを達成することができるか知りたいのですHibernateマニュアルおよび自動生成プライマリキー

答えて

1

インターフェイスを利用して独自の実装を定義してください。

public class MyEntityIdGenerator implements IdentifierGenerator{ 

    public Serializable generate(SessionImplementor session, Object object) 
      throws HibernateException { 
     MyEntity entity = (MyEntity)object; 

     if(entity.getId()==null){ 
      Connection con = session.connection(); 
      // retrieve next sequence val from database for example 

      return nextSeqValue; 
     } 
    } 
} 

次に、あなたのエンティティのIDフィールドに適切な注釈を追加:

@Id 
@GenericGenerator(name="myCustomGen", strategy="com.example.MyEntityGenerator") 
@GeneratedValue(generator="myCustomGen") 
関連する問題