OpenJPA:@GeneratedValue被忽略

OpenJPA:@GeneratedValue被忽略,jpa,db2,websphere,openjpa,Jpa,Db2,Websphere,Openjpa,我尝试使用JPA来持久化我的对象分类,但我不能使用标记“@GeneratedValue(strategy=IDENTITY)”,因为它会生成一个错误 数据库是DB2: CREATE TABLE "Schema"."Categorie" ( "idCategorie" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( START WITH 1 INCREMENT BY 1), ... 实体: @Entity @Tab

我尝试使用JPA来持久化我的对象分类,但我不能使用标记“@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

在SQL数据库中使用区分大小写的对象名总是一个坏主意。如您所见,应用程序查找名为
idcategree
(大写)的列,而您使用混合大小写创建了它:
idcategree
。我尝试将所有内容都用小写,但问题仍然存在:(就像我说的:不要用区分大小写的名称创建表。为此,不能在名称周围使用引号:
create table Schema.categile(idcategile INTEGER…
),名称将转换为大写。
CREATE TABLE Schema.Categorie (idCategorie INTEGER