首頁  >  問答  >  主體

java - hibernate正向工程產生一對多關係模型無報錯,但是只產生了一張表

我現在準備做正向工程,User客戶和Order訂單的一對多關係

下面是他們的實體類別

package com.cw.entity;

import java.util.Set;

public class User implements java.io.Serializable {
    private Integer id;
    private String username;
    private String password;
    private Set<Order> order;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Set<Order> getOrder() {
        return order;
    }
    public void setOrder(Set<Order> order) {
        this.order = order;
    }
    public User(String username, String password, Set<Order> order) {
        super();
        this.username = username;
        this.password = password;
        this.order = order;
    }
    
    
}

package com.cw.entity;

public class Order implements java.io.Serializable {
    private Integer id;
    private User user;
    private String shop;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    public String getShop() {
        return shop;
    }
    public void setShop(String shop) {
        this.shop = shop;
    }
    public Order(User user, String shop) {
        super();
        this.user = user;
        this.shop = shop;
    }
    
}

下面是hbm.xml設定檔

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.cw.entity.User" table="user" catalog="test">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="username" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" />
        </property>
        <set name="order" cascade="save-update" inverse="true">
            <key column="order"></key>
            <one-to-many class="com.cw.entity.Order"/>
        </set>
    </class>
</hibernate-mapping>

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.cw.entity.Order" table="order" catalog="test">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>
        <!-- <property name="user" type="com.cw.entity.User">
            <column name="user" />
        </property> -->
        <property name="shop" type="java.lang.String">
            <column name="shop" />
        </property>
        <many-to-one name="user" class="com.cw.entity.User" cascade="all" column="user"></many-to-one>
    </class>
</hibernate-mapping>

其他配置我都檢查了沒問題,hibernate.cfg.xml也沒問題(已經加了兩個實體模型的配置項以及hbm2ddl配置),但是執行

package com.cw.entity;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.hibernate.id.Configurable;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Configuration configure = new Configuration().configure();
        SessionFactory buildSessionFactory = configure.buildSessionFactory();
        Session session = buildSessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        tx.commit();
    }

}

之後只有user表生成了,order表沒有生成,請問一下現在問題是出在哪?

我想大声告诉你我想大声告诉你2713 天前541

全部回覆(1)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-17 10:06:01

    用註解吧,現在流行註解

    回覆
    0
  • 取消回覆