1
对于失败安全,我总是在映射类中使用双引号。而这仅适用于PostgreSQL的如果使用双引号,则无法插入使用Hibernate的行
这里是我的类:
@Entity
@Table(name="`Person`"
,schema="public"
)
public class Person implements java.io.Serializable {
private Integer id;
private String name;
private String address;
public Person() {
}
@Id @GeneratedValue(strategy=IDENTITY)
@Column(name="`ID`", nullable=false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name="`Name`")
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name="`Address`")
public String getAddress() {
return this.address;
}
public void setAddress(String address) {
this.address = address;
}
}
当我试图用我得到异常下面插入:
org.postgresql.util.PSQLException: The column name
ID was not found in this ResultSet.
查询它跑了插入物:
insert into public."Person" ("Address", "Name") values (?, ?)
由于其他原因,我无法删除双引号。
请帮我解决这个问题。
更新: 数据库模式:
CREATE TABLE "Person"
(
"ID" INTEGER PRIMARY KEY NOT NULL DEFAULT nextval('"Person_ID_seq"'::regclass),
"Name" VARCHAR(255),
"Address" VARCHAR(255)
);
在表中,列的名称是“ID”? –
是的,列名是“ID” –
使用'@Column(name =“\”ID \“”,nullable = false)' –