2015-11-27 57 views
0

hibernate.cf.xml文件異常線程 「main」 org.hibernate.MappingException:未知實體:com.mypackage.Address1

<hibernate-configuration>   
<session-factory> 

<property name="hbm2ddl.auto">create</property> 
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property> 
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property> 
<property name="connection.username">system</property> 
<property name="connection.password">Password</property> 
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 

<mapping class="com.mypackage.UserDetails"/> 
<!-- <mapping class="com.mypackage.Address1"/> --> 

</session-factory>   
</hibernate-configuration> 

的UserDetails實體

package com.mypackage; 

@Entity 
@Table(name="UserDetailsTable") 
public class UserDetails { 
    @Id 
    //@GeneratedValue//(strategy = GenerationType.AUTO) 
    private int userId; 

    private String userName; 
    @Embedded 
    private Address1 address; 

    private String phoneNo; 
    private Date date; 
} 

嵌入式實體

package com.mypackage; 

@Embeddable 
public class Address1 { 
    private String street; 
    private String city; 
    private String state; 
    private String pincode;  
} 

主類

public class Test {  
    public static void main(String[] args) {   
     Session session=new AnnotationConfiguration(). 
       configure().buildSessionFactory().openSession(); 

     Transaction t=session.beginTransaction(); 
     Address1 addrobj1=new Address1(); 
     addrobj1.setStreet("karunechi"); 
     addrobj1.setCity("Edakkara"); 
     addrobj1.setState("Malappuram"); 
     addrobj1.setPincode("679331"); 

     UserDetails obj1=new UserDetails(); 
     obj1.setUserId(1); 
     obj1.setUserName("kannan s nair"); 
     obj1.setAddress(addrobj1); 
     obj1.setPhoneNo("9633835509"); 

     session.saveOrUpdate(addrobj1);   
     t.commit(); 
     session.close(); 
     System.out.println("saved successfully"); 
    }  
} 

錯誤讓Eclipse的JUNO是:

的log4j:警告沒有附加目的地可以爲記錄器 (org.hibernate.cfg.annotations.Version)中找到。 log4j:WARN請正確初始化 log4j系統。異常線程 「main」 org.hibernate.MappingException:未知實體:com.mypackage.Address1 在 org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548) 在 org.hibernate.impl.SessionImpl .getEntityPersister(SessionImpl.java:1338) 在org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:180) 在 org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:487) 在 org.hibernate.event.def.DefaultSaveOrUpdateEvent.DefSaveOrUpdateEvent.def.DefaultSaveOrUpdateEvent.def.DefaultSaveOrUpdateEvent.def.DefaultSaveOrUpdateEvent(DefaultSaveOrUpdateEventListener.java:84) at org.hibernate.event.def.DefaultSaveOrUpdateEvent Listener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) 在 org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507) 在org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499) 在組織.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495) 在com.mypackage.Test.main(Test.java:33)

無法理清錯誤。
有人請幫忙?

回答

1

您已經評價映射類地址1 <!-- <mapping class="com.mypackage.Address1"/> -->所以它不能被發現

0

請添加對地址1豆映射標籤到您的Hibernate配置文件,如果你havnt創建的映射文件的地址1的bean,然後創建它。

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD//EN" 
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping> 
<class name="Address1" table="ADDRESS1"> 
     <meta attribute="class-description"> 
     This class contains the address detail. 
     </meta> 
     <id name="id" type="int" column="id"> 
     <generator class="native"/> 
     </id> 
     <property name="street" column="street_name" type="string"/> 
     <property name="city" column="city_name" type="string"/> 
     <property name="state" column="state_name" type="string"/> 
     <property name="zipcode" column="zipcode" type="string"/> 
    </class> 
</hibernate-mapping> 

你也可以使用下面的標籤添加到您的配置文件

<mapping resource>com/mypackage/Address1.hbm.xml</mapping resource> 

實體映射,或者必須明確類添加到使用

configuration.addClass(com.mypackage.Address1.class) 
// Read mappings as a application resourceName 
// addResource is for add hbml.xml files in case of declarative approach 
configuration.addResource("com.mypackage.Address1.xml") 
配置
相關問題