2013-05-04 2 views
9

私はこの部分をハイバーネーションマッピングXMLファイルにしています。ネイティブが意味するものの良い例を探していました。ハイバーネイトのネイティブジェネレータークラス

<hibernate-mapping> 
<class name="com.hib.Task" table="tasks"> 
    <id name="id" type="int" column="id" > 
    <generator class="native"/> 
    </id> 

固有の識別子プロパティに関連するものがありますが、実際には例があります。

初心者の質問で申し訳ありませんが、私は一般的に冬眠とプログラミングに新しいです:) ありがとう!

答えて

8

ネイティブの意味 あなたのジェネレータは、あなたの現在のデータベースがサポートしているものに従ってID列またはシーケンス列を使用します。

ドキュメントは、基盤となるデータベースの性能によりidentity、sequence、hiloのいずれかを選択し

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html#mapping-declaration-id

ネイティブ

ここでは、各戦略について説明しました。割り当てられた

は、アプリケーションが呼び出された()保存する前に、オブジェクトに識別子を割り当てることができます。要素が指定されていない場合、これはデフォルト戦略です。例えば

:あなたはAUTO_INCREMENTのように主キー列を持っている場合、MySQLでは は、DBはこの戦略

+0

「割り当て済み」はプライマリを生成するためのデフォルト戦略です。 ref key.https://www.java4s.com/hibernate/generators-in-hibernate/ –

+0

3行目を読んで、誰がここでナツメを決めるかもしれません。 –

+0

@AshishBurnwalあなたとAshishと同意します。いくつかのランダムなオンラインリソースをリンクして申し訳ありません。公式ドキュメントを指すように編集されました。再度、感謝します。 –

2

を使用して更新され、スレシュアッタが言ったことを完了するには、あなたがシーケンスに名前を付けることができます。

<hibernate-mapping> 
<class name="com.hib.Task" table="tasks"> 
    <id name="id" type="int" column="id" > 
    <generator class="native"> 
    <param name="sequence">s_tasks</param> 
    </generator> 
    </id> 

したがって、IDENTITYとSEQUENCE増分プライマリキーのどちらに対しても機能します。

関連する問題