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)' –