Heim  >  Fragen und Antworten  >  Hauptteil

Java - Hibernate Forward Engineering generiert ein Eins-zu-viele-Beziehungsmodell ohne Fehler, es wird jedoch nur eine Tabelle generiert

Ich werde mich jetzt mit dem Forward Engineering befassen, der Eins-zu-Viele-Beziehung zwischen Benutzerkunden und Auftragsaufträgen

Im Folgenden sind ihre Entitätsklassen aufgeführt

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

Das Folgende ist die hbm.xml-Konfigurationsdatei

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

Ich habe andere Konfigurationen überprüft und es gibt kein Problem. hibernate.cfg.xml ist auch in Ordnung (zwei Entitätsmodell-Konfigurationselemente und die hbm2ddl-Konfiguration wurden hinzugefügt), aber die Ausführung

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();
    }

}

Danach wurde nur die Benutzertabelle generiert, die Bestelltabelle jedoch nicht. Was ist jetzt das Problem?

我想大声告诉你我想大声告诉你2713 Tage vor539

Antworte allen(1)Ich werde antworten

  • 过去多啦不再A梦

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

    用注解吧,现在流行注解

    Antwort
    0
  • StornierenAntwort