2012-07-07 77 views
0

我是新来的hibernate,运行下面的代码时它显示映射异常怎么才能纠正任何一个引导我。我使用的Eclipse IDEorg.hibernate.MappingException:无效配置

我的主类

 UserDetails userDetails = new UserDetails(); 
     userDetails.setUserId(1); 
     userDetails.setUserName("Anand"); 
     SessionFactory sessionFactory = new 
     Configuration().configure().buildSessionFactory(); 
     Session session = sessionFactory.openSession(); 
     session.beginTransaction(); 
     session.save(userDetails); 
     session.getTransaction().commit(); 

我的hibernate.cfg.xml文件

<session-factory> 
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
<property name="connection.url">jdbc:mysql://localhost:3306/test</property> 
<property name="connection.username">root</property> 
<property name="connection.password"></property> 
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> 
<property name="show_sql">true</property> 
<property name="hbm2ddl.auto">create</property> 
<mapping class="classes.UserDetails"></mapping> 
</session-factory> 

UserDetails.java

package classes; 

import javax.persistence.Entity; 
import javax.persistence.Id; 

@Entity 
public class UserDetails { 
    @Id 
    private int userId; 
    private String userName; 

    public int getUserId() { 
     return userId; 
    } 
    public void setUserId(int userId) { 
     this.userId = userId; 
    } 
    public String getUserName() { 
     return userName; 
    } 
    public void setUserName(String userName) { 
     this.userName = userName; 
    } 


} 

在此先感谢

+2

这是不可能用您提供的信息进行诊断。向我们展示异常堆栈跟踪和你的UserDetails类的代码。 – 2012-07-07 16:27:47

+0

可以帮我吗? – Anand 2012-07-10 07:37:48

+0

我现在有同样的问题! – 2013-03-24 17:48:06

回答

0

在xml下是从Hibernate Community Documentation

<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD//EN" 
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 

    <!-- a SessionFactory instance listed as /jndi/name --> 
    <session-factory 
     name="java:hibernate/SessionFactory"> 

     <!-- properties --> 
     <property name="connection.datasource">java:/comp/env/jdbc/MyDB</property> 
     <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
     <property name="show_sql">false</property> 
     <property name="transaction.factory_class"> 
      org.hibernate.transaction.JTATransactionFactory 
     </property> 
     <property name="jta.UserTransaction">java:comp/UserTransaction</property> 

     <!-- mapping files --> 
     <mapping resource="org/hibernate/auction/Item.hbm.xml"/> 
     <mapping resource="org/hibernate/auction/Bid.hbm.xml"/> 

     <!-- cache settings --> 
     <class-cache class="org.hibernate.auction.Item" usage="read-write"/> 
     <class-cache class="org.hibernate.auction.Bid" usage="read-only"/> 
     <collection-cache collection="org.hibernate.auction.Item.bids" usage="read-write"/> 

    </session-factory> 

</hibernate-configuration> 

我从answer of @Vash引用示例配置文件。

我希望这将有助于解决您的问题。