java - 使用hibernate注释的Mysql异常

标签 java spring hibernate

我正在为我的示例应用程序使用 Spring 3 和 hibernate3 注释。当我尝试连接我的数据库时,我收到了错误。

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:“字段列表”中存在未知列“student0_.studentAddress_ADDRESS_ID”

学生类(class)

@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;
    }

}

地址类别

@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;
    }

}

hibernate 配置文件

<?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>

谁知道问题出在哪里

谢谢

最佳答案

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

关于java - 使用hibernate注释的Mysql异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905508/

相关文章:

java - 初始化 Hibernate 中代理的所有属性

java - apache.commons.fileupload 抛出 MalformedStreamException

java - 在 Java Swing 中实现下拉表单

mysql - spring transaction 是否仅在进入服务方法中起作用?

java - spring boot中为静态资源设置setCachePeriod

java - Hibernate:如果子项以多对一方式链接到父项,如何让 Hibernate 在删除父项时从子表中删除记录?

java - 如果 session 过期,重新登录后继续工作

java - 无法在 Spring Boot 中使用 HTTPS(未找到 PKCS12)

java - 测试 Swing 应用程序

java - 如何禁用 eclipse 上的控制台日志