web-dev-qa-db-ja.com

注釈付きのHibernate文字列主キー

主キーが文字列であるアノテーションを使用して特権クラスを作成しようとしています。挿入時に手動で割り当てます。したがって、hibernateがその値を生成する必要はありません。私はそのようなことをしようとしています:

@Id
@GeneratedValue(generator = "assigned")
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;

しかし、それはその例外をスローします:

Caused by: org.hibernate.AnnotationException: Unknown Id.generator: assigned

注釈付きのString主キーを構成するにはどうすればよいですか?

7
sedran

roleNameは自動生成されないため、単に@GeneratedValueで注釈を付けないでください。

@Id
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;
25
JB Nizet
@Id
@Column(name = "USER_ID",unique=true,columnDefinition="VARCHAR(64)")
private String userId;

これは、保存または更新中にcolumnDefinitionタイプを列アノテーションで表すことで機能しました。

4
Gopinathan

@Idアノテーションを使用するだけで、エンティティの識別子となるプロパティを定義できます。 hibernateでこのプロパティを生成する必要はないと思うので、@GeneratedValueアノテーションを使用する必要はありません。

XML構成ベースのアプローチでも、オプションのタグであり、スキップできます。

4
Pratik Shelar