2016-08-20 10 views
0

人!私は休止状態5に非常に奇妙な問題があります。 私はスレッド "main"の例外org.hibernate.MappingException:不明なエンティティ:com.rosko.Merchandiser私がconfiguration.addAnnotatedClass(com.rosko.Merchandiser.class)を削除するときHibernateエラー - org.hibernate.MappingException:不明なエンティティ:

HibernateUtil.java

public class HibernateUtil { 

private static final SessionFactory sessionFactory = buildSessionFactory(); 

private static SessionFactory buildSessionFactory() { 
    try { 
     Configuration configuration = new Configuration(); 
     configuration.configure(); 
     /* **With this line, everyting is working..** configuration.addAnnotatedClass(com.rosko.Merchandiser.class);*/ 
     return configuration.buildSessionFactory(
       new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     throw new RuntimeException("There was an error building the factory"); 
    } 
} 

public static SessionFactory getSessionFactory() { 
    return sessionFactory; 
}} 

Application.java

パブリッククラスのアプリケーション{

public static void main(String[] args) { 


    Session session = HibernateUtil.getSessionFactory().openSession(); 
    session.beginTransaction(); 

    Merchandiser merchant = new Merchandiser(); 

    merchant.setAddress("Viena"); 
    merchant.setName("sadkada"); 

    session.save(merchant);  


    session.getTransaction().commit(); 
    session.close(); 
} 
} 

hibernate.cfg.xmlの

<hibernate-configuration> 
<session-factory> 
    <!-- Database connection settings --> 
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="connection.url">jdbc:mysql://localhost:3306/finance?serverTimezone=UTC</property> 
    <property name="connection.username">root</property> 
    <property name="connection.password">rozeto90</property> 
    <!-- SQL dialect --> 
    <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> 
    <!-- Echo all executed SQL to stdout --> 
    <property name="show_sql">true</property> 


     <mapping class="com.rosko.Merchandiser" /> 

</session-factory> 

Merchandiser.java

@Entity 
@Table(name="merchandiser") 
public class Merchandiser { 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private int id; 
@Column(name="name") 
private String name; 

@Column(name= "address") 
private String address; 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getAddress() { 
    return address; 
} 

public void setAddress(String address) { 
    this.address = address; 
} 


} 

私は唯一のマッピングクラスのXMLファイルを使用することはできますか?

よろしくお願いいたします。

+0

は 'exepcted hibernate.cfg.xmlのを見つける。)' configuration.configure(かどうかを確認するために、デバッグモードで実行するようにしてください – davidxxx

答えて

0

hibernate.cfg.xmlのファイル名とパスが正しいことを確認してください。

path = src/main/resources/hibernate.cfg.xml 

また、HibernateUtilのクラスの下に使用してみてください:

import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry; 
import org.hibernate.service.ServiceRegistryBuilder; 

public class HibernateUtil { 
    private static final SessionFactory sessionFactory = buildSessionFactory(); 

    private static SessionFactory buildSessionFactory() { 
     Configuration configuration = new Configuration(); 
     configuration.configure(); 
     ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() 
       .applySettings(configuration.getProperties()) 
       .buildServiceRegistry(); 
     return configuration.buildSessionFactory(serviceRegistry); 
    } 

    public static SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 

    public static void shutdown() { 
     // Close caches and connection pools 
     getSessionFactory().close(); 
    } 
} 
関連する問題