2016-04-10 16 views
0

Ich benutze Hibernate Orm, ich habe 2 Tabellen mit Eins-zu-viele-Beziehung und ich kann nicht herausfinden, warum Hibernate nicht erstellt meiner Tische (Zeitschriftentisch). Ich verwende hbm2dll, um Tabellen automatisch zu erstellen.Hibernate: Eins-zu-Viele-Beziehung erstellt keine der Tabellen

Magazine.hbm.xml

<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

<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

<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

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

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

}

+0

Wo Sie Ihre Mapping-Dateien spezifiziert werden? –

+0

im Ressourcenordner. entesharat Tabelle ist in Ordnung, aber Magazin erstellt nicht Ich denke, es kann ein MySQL-Problem für Fremdschlüssel sein –

Antwort

0

das Problem unter

magazine.hbm.xml

im Code war
<property name="desc"    column="DESC"   type="java.lang.String"  ></property> 

DESC ist ein Schlüsselwort in mysql

Verwandte Themen