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?
用注解吧,现在流行注解