2016-03-30 20 views
0

Hazırda bekletme özelliğini kullanarak sqlite kullanmaya çalışıyorum. Ancak, sqlite veritabanı yolunu yapılandırarak zor zamanlar geçirdim. Şu anda, benim hibernate.cfg.xml şöyle görünür: Ben IntelliJ kullanıyorumHibernate.cfg.xml içinde glassfish sunucusunda sqlite yolu

<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
     "-//Hibernate/Hibernate Configuration DTD//EN" 
     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
     <property name="connection.url">jdbc:sqlite:test.db</property> 
     <property name="connection.driver_class">org.sqlite.JDBC</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.SQLiteDialect</property> 
     <property name="current_session_context_class">thread</property> 

     <mapping class="com.test.entity.Category"/> 
     <!-- DB schema will be updated if needed --> 
     <!-- <property name="hbm2ddl.auto">update</property> --> 
    </session-factory> 
</hibernate-configuration> 

. Test paketini, test paketinde görebildiğim yapay zeminde & kaynaklarına yerleştirdim. Ancak, her bu hatayı alıyorum:

org.hibernate.hql.internal.ast.QuerySyntaxException: Category is not mapped [select id from Category] 

Category.java

@Entity 
@Table(name = "category", schema = "", catalog = "") 
public class Category { 
    private String id; 
    private String name; 
    private String imageUrl; 

    @Id 
    @Column(name = "id") 
    public String getId() { 
     return id; 
    } 

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

    @Basic 
    @Column(name = "name") 
    public String getName() { 
     return name; 
    } 

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

    @Basic 
    @Column(name = "imageUrl") 
    public String getImageUrl() { 
     return imageUrl; 
    } 
} 

HibernateUtil.java

public class HibernateUtil { 

    private static SessionFactory sessionFactory; 

    private static SessionFactory buildSessionFactory() { 
     try { 
      Configuration configuration = new Configuration(); 
      configuration.configure("hibernate.cfg.xml"); 

      ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
        configuration.getProperties()).build(); 
      return configuration.buildSessionFactory(serviceRegistry); 

     } catch (Throwable ex) { 
      System.err.println("Initial SessionFactory creation failed." + ex); 
      throw new ExceptionInInitializerError(ex); 
     } 
    } 

    public static SessionFactory getSessionFactory() { 
     if(sessionFactory == null){ 
      sessionFactory = buildSessionFactory(); 
     } 
     return sessionFactory; 
    } 

    public static void shutdown() { 
     getSessionFactory().close(); 
    } 
} 

Hazırda sürüm 5.1.0

kullanıyorum

Ben kontrol ettim d sessionFactory.getAllClassMetadata() - eşlenmiş hiçbir sınıf gösterilmez. Herhangi bir yardım büyük takdir edilecektir.

+1

, sizin 'Category' ve konfigürasyon kodu eklemek ve versiyonu Hazırda Lütfen bakınız yapmak. –

+0

@ v.ladynev Hey, güncelledim. –

+0

'u tekrar kontrol edebilir misiniz? Lütfen bir oturum fabrikası oluşturan kodu ekleyin. –

cevap

0

Hatalı Hazırda 5 yapılandırması kullanın. Hazırda 5'te

Configuration configuration = new Configuration(); 
configuration.configure("hibernate.cfg.xml"); 

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
     configuration.getProperties()).build(); 
return configuration.buildSessionFactory(serviceRegistry); 

, bunu yaptığında configuration.configure("hibernate.cfg.xml") her şeyin düzgün yapılandırılmış. Ancak, configuration.buildSessionFactory(serviceRegistry)'u yaptığınızda tüm yapılandırma kaybolur.

Sadece

return new Configuration().configure().buildSessionFactory(); 

Hibernate 5 :- org.hibernate.MappingException: Unknown entity