我尝试使用JPA来保存我的对象Categorie,但我不能使用标记“@GeneratedValue(strategy = IDENTITY)”,因为它会生成错误。
数据库是DB2:
CREATE TABLE "Schema"."Categorie" (
"idCategorie" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( START WITH 1 INCREMENT BY 1),
...
实体:
@Entity
@Table(name="\"Categorie\"")
public class Categorie implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "\"idCategorie\"", insertable = false, updatable = false)
@GeneratedValue(strategy = IDENTITY)
private int idCategorie;
@Column(name="\"description\"")
private String description;
...
错误:
Caused by: <openjpa-2.2.3-SNAPSHOT-r422266:1508185 fatal general error>
org.apache.openjpa.persistence.PersistenceException: "IDCATEGORIE" n'est pas autorisé dans le contexte dans lequel il est utilisé.. SQLCODE=-206, SQLSTATE=42703, DRIVER=3.63.123 {prepstmnt -844100720 INSERT INTO "Schema"."Categorie" ("description", "idCatParent", "nom") VALUES (?, ?, ?) [params=?, ?, ?]} [code=-206, state=42703]SQLCA OUTPUT[Errp=SQLNQ075, Errd=-2145779603, 0, 0, 0, -10, 0]
"IDCATEGORIE" n'est pas autorisé dans le contexte dans lequel il est utilisé.. SQLCODE=-206, SQLSTATE=42703, DRIVER=3.63.123
Une erreur s'est produite lors d'une action système implicite de type "2". Les informations renvoyées pour l'erreur comprennent le SQLCODE "-206", le SQLSTATE "42703" et les jetons de message "IDCATEGORIE".. SQLCODE=-727, SQLSTATE=56098, DRIVER=3.63.123
Une erreur s'est produite lors d'une action système implicite de type "2". Les informations renvoyées pour l'erreur comprennent le SQLCODE "-206", le SQLSTATE "42703" et les jetons de message "IDCATEGORIE".. SQLCODE=-727, SQLSTATE=56098, DRIVER=3.63.123
FailedObject: classe.Categorie@9eecc5d7
当我尝试删除“insertable = false,updatable = false”时,我有同样的错误。
如果我删除@GeneratedValue(strategy = IDENTITY)它可以工作但是我无法获得idCategorie。
我很抱歉我的英语,我希望你能帮助我:)。
求助:
DATABASE必须没有引用..
CREATE TABLE Schema.Categorie (idCategorie INTEGER