2011-11-01 86 views
0

我試圖將Hibernate(3.2.5)與PostgreSQL 8.2連接起來,但是當我嘗試在hbm.xml文件中映射具有關係證書的類證書時,出現以下異常:無法連接Postgres與休眠

**

PSQLException: ERROR: relation "certificate" does not exist

**

創建的SQL證書:

CREATE TABLE "Certificate" ( id bigint NOT NULL,
name text,
CONSTRAINT certificate_pk1 PRIMARY KEY (id)
) WITHOUT OIDS;

的POJO CLAS '證書' 是:

public class Certificate implements Serializable { 
private static final long serialVersionUID = 1L; 
private Long id; 

private String name; 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public Long getId() { 
    return id; 
} 

public void setId(Long id) { 
    this.id = id; 
} 


public String toString() { 
    return "model.Certificate[id=" + id + "]"; 
} 

}

hibernate.cfg.xml文件:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost /Company</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">abc123</property>
<mapping resource="hibernate.hbm.xml"/>
</session-factory>
</hibernate-configuration>

回答

3

這是錯誤:

PSQLException: ERROR: relation "certificate" does not exist

這是你的表:

"Certificate"

數據庫正在尋找小寫的「證書」,創建了大寫的「證書」。

圍繞所有標識符使用相同的套管雙引號,或者只是使用小寫字母來簡化事情。

+0

謝謝。它終於奏效了。我所做的是,在映射證書類的hbm.xml文件中,我使用了table =''Certificate''而不是table =「Certificate」。 – Supereme

+0

@Frank我有同樣的問題。奇怪的是,它在我的iMac上工作,但是我的MacBook把這個錯誤拋給我。這怎麼可能? – Varundroid