主キーが文字列であるアノテーションを使用して特権クラスを作成しようとしています。挿入時に手動で割り当てます。したがって、hibernateがその値を生成する必要はありません。私はそのようなことをしようとしています:
@Id
@GeneratedValue(generator = "assigned")
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;
しかし、それはその例外をスローします:
Caused by: org.hibernate.AnnotationException: Unknown Id.generator: assigned
注釈付きのString
主キーを構成するにはどうすればよいですか?
roleName
は自動生成されないため、単に@GeneratedValue
で注釈を付けないでください。
@Id
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;
@Id
@Column(name = "USER_ID",unique=true,columnDefinition="VARCHAR(64)")
private String userId;
これは、保存または更新中にcolumnDefinitionタイプを列アノテーションで表すことで機能しました。
@Id
アノテーションを使用するだけで、エンティティの識別子となるプロパティを定義できます。 hibernateでこのプロパティを生成する必要はないと思うので、@GeneratedValue
アノテーションを使用する必要はありません。
XML構成ベースのアプローチでも、オプションのタグであり、スキップできます。