首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hibernate :一对多的关系不会创建一个表。

hibernate :一对多的关系不会创建一个表。
EN

Stack Overflow用户
提问于 2016-04-10 11:37:34
回答 1查看 444关注 0票数 0

我正在使用hibernate orm,我有两个具有一对多关系的表,我不知道为什么hibernate不创建我的一个表(杂志表)。我使用hbm2dll自动创建表。

Magazine.hbm.xml

代码语言:javascript
复制
<hibernate-mapping>

<class name="ir.sheentech.school.model.magazine.Magazine" table="magazine">
    <id name="magID"  type="java.lang.Integer">
        <column name="MAG_ID"></column>
        <generator class="identity"></generator>
    </id>
    <property name="magName"           column="MAG_NAME"        type="java.lang.String"       not-null="true"></property>
    <property name="desc"              column="DESC"            type="java.lang.String"       ></property>

    <set name="entesharat" table="entesharat" inverse="true" cascade="all">
        <key>
            <column name="MAG_ID" not-null="true"></column>
        </key>
        <one-to-many class="ir.sheentech.school.model.magazine.Entesharat"/>
    </set>
</class>

Entesharat.hbm.xml

代码语言:javascript
复制
<hibernate-mapping>
<class name="ir.sheentech.school.model.magazine.Entesharat" table="entesharat">
    <id name="id" type="java.lang.Integer">
        <column name="ID"></column>
        <generator class="identity"></generator>
    </id>

    <property name="name"           column="NAME"           type="java.lang.String"             not-null="true"></property>
    <many-to-one name="magazine"    column="MAG_ID"    class="ir.sheentech.school.model.magazine.Magazine" not-null="true"  >       </many-to-one>
</class>

hibernate.cfg.xml

代码语言:javascript
复制
<hibernate-configuration>
<session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/school?zeroDateTimeBehavior=convertToNull</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">admin</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.connection.pool_size">10</property>
    <property name="hibernate.connection.CharSet">utf8</property>
    <property name="hibernate.connection.characterEncoding">utf8</property>
    <property name="hibernate.connection.useUnicode">true</property>
    <property name="hbm2ddl.auto">update</property>
</session-factory>

Magazine.java

代码语言:javascript
复制
public class Magazine {
private Integer magID;
private String magName;
private Set<Entesharat> entesharat = new HashSet<Entesharat>(0);
private String desc;
public Integer getMagID() {
    return magID;
}
public void setMagID(Integer magID) {
    this.magID = magID;
}
public String getMagName() {
    return magName;
}
public void setMagName(String magName) {
    this.magName = magName;
}
public Set<Entesharat> getEntesharat() {
    return entesharat;
}
public void setEntesharat(Set<Entesharat> entesharat) {
    this.entesharat = entesharat;
}
public String getDesc() {
    return desc;
}
public void setDesc(String desc) {
    this.desc = desc;
}

Entesharat.java

代码语言:javascript
复制
public class Entesharat {

private Integer id;
private String name;
private Magazine magazine;


public Integer getId() {
    return id;
}
public void setId(Integer id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public Magazine getMagazine() {
    return magazine;
}
public void setMagazine(Magazine magazine) {
    this.magazine = magazine;
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-12 20:50:29

问题在下面的代码中。

magazine.hbm.xml

代码语言:javascript
复制
<property name="desc"              column="DESC"            type="java.lang.String"       ></property>

DESC是mysql中的关键字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36529195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档