2011-10-26 85 views
1

我對示例應用程序使用Spring 3和hibernate3註釋。當我嘗試連接我的db時,出現錯誤。使用hibernate註釋的Mysql異常

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知列在 '字段列表'

Student類

@Entity 
@Table(name = "STUDENT") 
public class Student { 

    private long studentId; 
    private String studentName; 
    private Address studentAddress; 

    public Student() { 
    } 

    public Student(String studentName, Address studentAddress) { 
     this.studentName = studentName; 
     this.studentAddress = studentAddress; 
    } 

    @Id 
    @GeneratedValue 
    @Column(name = "STUDENT_ID") 
    public long getStudentId() { 
     return this.studentId; 
    } 

    public void setStudentId(long studentId) { 
     this.studentId = studentId; 
    } 

    @Column(name = "STUDENT_NAME", nullable = false, length = 100) 
    public String getStudentName() { 
     return this.studentName; 
    } 

    public void setStudentName(String studentName) { 
     this.studentName = studentName; 
    } 

    @ManyToOne(cascade = CascadeType.ALL) 
    public Address getStudentAddress() { 
     return this.studentAddress; 
    } 

    public void setStudentAddress(Address studentAddress) { 
     this.studentAddress = studentAddress; 
    } 

} 

地址類 'student0_.studentAddress_ADDRESS_ID'

@Entity 
@Table(name = "ADDRESS") 
public class Address { 

    private long addressId; 
    private String street; 
    private String city; 
    private String state; 
    private String zipcode; 

    public Address() { 
    } 

    public Address(String street, String city, String state, String zipcode) { 
     this.street = street; 
     this.city = city; 
     this.state = state; 
     this.zipcode = zipcode; 
    } 

    @Id 
    @GeneratedValue 
    @Column(name = "ADDRESS_ID") 
    public long getAddressId() { 
     return this.addressId; 
    } 

    public void setAddressId(long addressId) { 
     this.addressId = addressId; 
    } 

    @Column(name = "ADDRESS_STREET", nullable = false, length=250) 
    public String getStreet() { 
     return this.street; 
    } 

    public void setStreet(String street) { 
     this.street = street; 
    } 

    @Column(name = "ADDRESS_CITY", nullable = false, length=50) 
    public String getCity() { 
     return this.city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

    @Column(name = "ADDRESS_STATE", nullable = false, length=50) 
    public String getState() { 
     return this.state; 
    } 

    public void setState(String state) { 
     this.state = state; 
    } 

    @Column(name = "ADDRESS_ZIPCODE", nullable = false, length=10) 
    public String getZipcode() { 
     return this.zipcode; 
    } 

    public void setZipcode(String zipcode) { 
     this.zipcode = zipcode; 
    } 

} 

休眠配置文件

<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD//EN" 
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 


<hibernate-configuration> 
    <session-factory> 
     <mapping class="net.viralpatel.contact.form.Contact" /> 
     <mapping class="net.viralpatel.contact.form.Student" /> 
     <mapping class="net.viralpatel.contact.form.Address" /> 
    </session-factory> 

</hibernate-configuration> 

任何人都知道是什麼問題,

感謝

+0

你在學生表裏有什麼欄目? – anfy2002us

+0

你的數據庫架構有沒有更新過?你是否證實數據庫有'STUDENT_ID'字段? – Gray

回答

0

例外說,你的表缺少列。

形成它的名字和你的映射我會說在表學生的reflet地址中的foraign鍵列丟失或寫錯了。休眠會預期它是:studentAddress_ADDRESS_ID

1

使用@JoinColumn指定學生表中的FK列。