2013-02-14 14 views
2

我無法運行我的hibernate應用程序。我不斷收到此錯誤:解析Hibernate的錯誤Man.hbm.xml

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/C:/Users/MAG/.m2/repository/org/slf4j/slf4j-jdk14/1.7.2/slf4j-jdk14-1.7.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/C:/Users/MAG/.m2/repository/org/slf4j/slf4j-log4j12/1.5.8/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [org.slf4j.impl.JDK14LoggerFactory] 
2013-02-14 14:49:05 org.hibernate.cfg.Environment <clinit> 
INFO: Hibernate 3.3.0.SP1 
2013-02-14 14:49:05 org.hibernate.cfg.Environment <clinit> 
INFO: hibernate.properties not found 
2013-02-14 14:49:05 org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: Bytecode provider name : javassist 
2013-02-14 14:49:05 org.hibernate.cfg.Environment <clinit> 
INFO: using JDK 1.4 java.sql.Timestamp handling 
2013-02-14 14:49:05 org.hibernate.cfg.Configuration configure 
INFO: configuring from resource: /hibernate.cfg.xml 
2013-02-14 14:49:05 org.hibernate.cfg.Configuration getConfigurationInputStream 
INFO: Configuration resource: /hibernate.cfg.xml 
2013-02-14 14:49:05 org.hibernate.cfg.Configuration addResource 
INFO: Reading mappings from resource : model/man/Man.hbm.xml 
2013-02-14 14:49:06 org.hibernate.util.XMLHelper$ErrorLogger error 
SEVERE: Error parsing XML: XML InputStream(25) Attribute "name" must be declared for element type "many-to-many". 
2013-02-14 14:49:06 org.hibernate.util.XMLHelper$ErrorLogger error 
SEVERE: Error parsing XML: XML InputStream(33) Attribute "name" must be declared for element type "many-to-many". 
2013-02-14 14:49:06 org.hibernate.util.XMLHelper$ErrorLogger error 
SEVERE: Error parsing XML: XML InputStream(38) The content of element type "set" must match "(meta*,subselect?,cache?,synchronize*,comment?,key,(element|one-to-many|many-to-many|composite-element|many-to-any),loader?,sql-insert?,sql-update?,sql-delete?,sql-delete-all?,filter*)". 

我計劃的想法是: 業主超類承租人
業主可以有許多單位,但平可以有一個所有者。
租戶可以有許多RenterBills,但RenterBill可以有一個租戶。
租戶可以有很多單位,單位可以有很多租客。

我Man.hbm.xml:

<class name="Man" table="MEN"> 
    <id name="id" column="MAN_ID"> 
     <generator class="native" /> 
    </id> 
    <property name="pesel" column="MAN_PESEL" /> 
    <property name="idNumber" column="MAN_ID_NUMBER" /> 
    <property name="email" column="MAN_EMAIL" /> 
    <property name="name" column="MAN_NAME" /> 
    <property name="surname" column="MAN_SURNAME" /> 
    <property name="telephoneNumber" column="MAN_TELEPHONE_NUMBER" /> 
    <many-to-one name="address" column="ADDRESS_ID" not-null="true" /> 

    <joined-subclass name="Owner" table="OWNERS"> 
     <key column="MAN_ID" /> 
     <property name="password" column="OWNER_PASSWORD" not-null="true" /> 
     <property name="seed" column="OWNER_SEED" not-null="true" /> 
     <set name="flats" table="OWNER_FLATS"> 
      <key column="MAN_ID" /> 
      <many-to-many name="flats" column="FLAT_ID" class="Flat" /> 
     </set> 
    </joined-subclass> 

    <joined-subclass name="Renter" table="RENTERS"> 
     <key column="MAN_ID" /> 
     <set name="flats" table="RENTER_FLATS"> 
      <key column="MAN_ID" /> 
      <many-to-many name="flats" column="FLAT_ID" class="Flat" /> 
     </set> 
     <set name="bills" table="RENTER_BILLS"> 
      <key column="MAN_ID" /> 
      <many-to-one name="bills" column="RENTER_BILL_ID" class="RenterBill" /> 
     </set> 
    </joined-subclass> 
</class> 

Java類: Man.java

package model.man; 
import model.addresses.Address; 
public abstract class Man { 

    private int id; 
    private String pesel; 
    private String idNumber; 
    private String email; 
    private String name; 
    private String surname; 
    private String telephoneNumber; 
    private Address address; 

     /* getters setters */ 
} 

Owner.java

package model.man; 

import java.util.Iterator; 
import java.util.Set; 

import model.flat.Flat; 

public class Owner extends Man implements Iterable<Flat> { 

    private String password; 
    private String seed; 
    private Set<Flat> flats; 

    /* getters setters */ 
} 

Renter.java

package model.man; 

import java.util.HashSet; 
import java.util.Set; 

import model.bills.RenterBill; 
import model.flat.Flat; 

public class Renter extends Man { 

    private Set<Flat> flats = new HashSet<Flat>(); 
    private Set<RenterBill> bills = new HashSet<RenterBill>(); 

       /* getters setters */ 
} 

回答

2
SEVERE: Error parsing XML: XML InputStream(25) Attribute "name" must be declared for element type "many-to-many". 
2013-02-14 14:49:06 org.hibernate.util.XMLHelper$ErrorLogger error 
SEVERE: Error parsing XML: XML InputStream(33) Attribute "name" must be declared for element type "many-to-many". 
2013-02-14 14:49:06 org.hibernate.util.XMLHelper$ErrorLogger error 
SEVERE: Error parsing XML: XML InputStream(38) The content of element type "set" must match "(meta*,subselect?,cache?,synchronize*,comment?,key,(element|one-to-many|many-to-many|composite-element|many-to-any),loader?,sql-insert?,sql-update?,sql-delete?,sql-delete-all?,filter*)". 

嘗試刪除從多到許多標籤的name屬性。

UPDATE

你必須映射爲一個多到一和一組。這通常在您的Java POJO中顯示爲引用類的單個實例。您可能打算在那裏使用一對多標籤。

+0

幫助了,但我仍然有這樣的: 嚴重錯誤:解析XML:XML的InputStream(38)元素類型的內容「設置爲」必須匹配「(元*,子查詢,緩存,同步*評論???鍵,(元素|一個一對多|許多一對多|複合元素|許多到任何)????,裝載機,SQL插入,SQL更新,SQL-刪除,SQL-刪除 - 所有?,過濾器*)」 – MAGx2 2013-02-14 14:10:00