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)
があなたの代わりにの属性「名前」を試してみました"applyTo" – nick78
またはCREATE TABLE PRODUCT_FOR_PRACTICEと@Table(name = "PRODUCT_FOR_PRACTICE" – nick78
はい、無効です。 – LowCool