0

JPA2.0 と Hibernate 4 を使用しています

テーブルで主キーを生成するために、テーブルトリガーを使用しています。主キーのデータ型として Long を使用している場合、トリガーは正常に機能します。ただし、文字列を主キー データ型として使用している場合、次のエラーが発生します。

org.springframework.orm.hibernate3.HibernateSystemException: Unknown integral 
data type for ids : java.lang.String; nested exception is
org.hibernate.id.IdentifierGenerationException: Unknown integral
 data type for ids : java.lang.String at 
org.springframework.orm.hibernate3.SessionFactoryUtils.
convertHibernateAccessException(SessionFactoryUtils.java:690)

では、トリガーを使用して値を生成するために主キーに文字列を使用することは許可されていませんか?

トリガーを使用して値を生成するための私のコード スニペット

private String deptNo;
@Id
@GenericGenerator(name = "trig", strategy = "increment")
@GeneratedValue(generator = "trig")
@Column(name = "DEPT_NO")

  public String getDeptNo() {
    return deptNo;
}

public void setDeptNo(String deptNo) {
    this.deptNo = deptNo;
}
4

1 に答える 1

2

hibernate で生成された String の値を使用することは許可されていませんが、キーには制限がありません。deptNo を文字列として使用する必要がある場合は、DeptNo を Long として含むドメイン オブジェクトのアダプタ クラスを作成できます。

于 2013-05-11T09:47:50.370 に答える