2016-08-27 7 views
0

私はHibernate 4.1.4バージョンの機能を操作しようとしています。私は、それが私に不明なテーブル参照を与えているコードを実行しようとしているときに私はhsqldb 2.3.3を使用しています。スレッド "main"の例外org.hibernate.AnnotationException:@ org.hibernate.annotations.Tableが未知のテーブルを参照しています:ProductForPractice

は、ここに私のテーブルのスクリプトです:

CREATE TABLE ProductForPractice (productId INTEGER,prodName char(25),price DECIMAL(5,2),PRIMARY KEY(productId)) 

Entityクラス

@Entity 

@Table(appliesTo="ProductForPractice") 
public class Product { 


    @Id 
    @Column 

    private int productId; 



    @Column(name="prodName") 
    private String prodName; 
    @Column 
    private double price; 
    @Version 
    private long version; 
//getter and setters 

ここに私の設定ファイルです

config.setProperty("hbm2ddl.auto", "create"); 
config.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect"); 
config.setProperty("hibernate.connection.url", "jdbc:hsqldb:hsql://localhost/"); 
config.setProperty("hibernate.connection.username", "SA"); 
config.setProperty("hibernate.connection.password", ""); 
config.setProperty("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver"); 
config.addAnnotatedClass(Product.class); 

config.setProperty("hibernate.archive.autodetection", "class,hbm"); 

ServiceRegistry serivce=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); 
SessionFactory factory=config.buildSessionFactory(serivce); 

ここに私の完全なスタックトレースです:

Exception in thread "main" org.hibernate.AnnotationException: @org.hibernate.annotations.Table references an unknown table: ProductForPractice 
    at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:933) 
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:713) 
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3435) 
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3389) 
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1341) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1731) 
    at Hibernate.configuration.Service.saveProduct(Service.java:28) 
    at main.Main1.main(Main1.java:15) 
+1

があなたの代わりにの属性「名前」を試してみました"applyTo" – nick78

+0

またはCREATE TABLE PRODUCT_FOR_PRACTICEと@Table(name = "PRODUCT_FOR_PRACTICE" – nick78

+0

はい、無効です。 – LowCool

答えて

0

あなたの表の注釈がpropablyちょうどあなたの代わりに使用する必要があることを注釈javax.persistence.Tableに情報を追加org.hibernate.annotations.Tableクラスである:

@javax.persistence.Table(name="ProductForPractice") 
public class Product { 
関連する問題