2.4.Identifier. Identifier
Hibernate Annotations は、ID を定義する場合に Java Persistence 仕様よりも対象とする範囲が広くなります。
2.4.Identifier.1. ジェネレータ
@org.hibernate.annotations.GenericGenerator
と @org.hibernate.annotations.GenericGenerators
を使用すると、Hibernate 固有の ID ジェネレータを定義できます。
@Id @GeneratedValue(generator="system-uuid") @GenericGenerator(name="system-uuid", strategy = "uuid") public String getId() { @Id @GeneratedValue(generator="hibseq") @GenericGenerator(name="hibseq", strategy = "seqhilo", parameters = { @Parameter(name="max_lo", value = "5"), @Parameter(name="sequence", value="heybabyhey") } ) public Integer getId() {
strategy
は Hibernate3 ジェネレータ方針または IdentifierGenerator
実装の完全修飾クラス名の短い名前です。parameters
属性を使用していくつかのパラメータを追加できます。
標準的なものとは異なり、
@GenericGenerator
と @GenericGenerators
はパッケージレベルアノテーションで使用でき、アプリケーションレベルジェネレータを作成します (JPA XML ファイルに含まれる場合と同様)。
@GenericGenerators( { @GenericGenerator( name="hibseq", strategy = "seqhilo", parameters = { @Parameter(name="max_lo", value = "5"), @Parameter(name="sequence", value="heybabyhey") } ), @GenericGenerator(...) } ) package org.hibernate.test.model