2017-08-18 5 views
0

休止状態に問題があります。私は、以前に作成されたOracle SQLで作成されたデータベースを更新して、休止状態で何らかの練習をしています。つまり、あるクラスオブジェクトが他のクラスから何かを参照しようとしているAnnotationExceptionが発生しているということです。ここでエラーがある:Hibernate AnnotationException SessionFactoryが作成されたときにスローされます

org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.revature.bank.POJO.BankAccount.customer references an unknown entity: com.revature.bank.POJO.Customer 
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:107) 
at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1580) 
at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1503) 
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1419) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1856) 
at com.revature.bank.POJO.DataFuncImp.createCustomer(DataFuncImp.java:16) 
at com.revature.bank.POJO.Main.main(Main.java:9) 

だから、これはラインを指している:

SessionFactory sf = new Configuration().configure().buildSessionFactory(); 

私は注釈が、以前ここで質問のどれもが仕事に見えたので、それが起こってかもしれないことを読んだことがあります。ここ は私の2クラスである:(ここで、エラーが指すものだと私は唯一の変数を入れます): Customer.java

@Entity 
@Table(name="USER_TABLE") 
public class Customer { 

@Id 
@GeneratedValue 
private int user_id; 
@Column 
private String user_fname; 
@Column 
private String user_lname; 
@Column 
private String user_email; 
@Column 
private String user_address; 
@Column 
private String user_city; 
@Column 
private String user_state; 
@Column 
private long cell_num; 
@OneToMany(cascade= {CascadeType.ALL}, mappedBy="customer") 
@JoinColumn(name="user_id") 
private List<BankAccount> bacct; 

BankAccount.java

@Entity 
@Table(name="USER_ACCOUNT") 
public class BankAccount { 

@Id 
@GeneratedValue 
private long acct_id; 
@Column 
private double balance; 
@ManyToOne 
@JoinColumn(name="user_id") 
private Customer customer; 

そして、ここでは私の休止状態の設定でありますファイルも同様です(データベース接続情報を編集しました)。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:xe</property> 
<property name="hibernate.connection.username">adminone</property> 
<property name="hibernate.connection.password">adminpass</property> 
<property name="hibernate.dialect">org.hibernate.dialect.Oracle11gDialect</property> 
<property name="show_sql">true</property> 
<property name="hbm2ddl.auto">update</property> 
<!-- <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property> --> 
<!-- <mapping resource="students.hbm.xml"></mapping> --> 
<mapping class="com.revature.bank.POJO.Customer"></mapping> 
<mapping class="com.revature.bank.POJO.BankAccount"></mapping> 
</session-factory> 
</hibernate-configuration> 

私は休止状態3.0を使用しています。私が以前に言及したように、私はエラーを理解しようとしているが、オンラインヘルプのどれもそれを修正するようではなかった。ご覧のとおり、私はまだデータベースに何もしようとしていないし、その例外をスローしています。これはなぜ起こっているのですか?前もって感謝します!!

+0

あなたは、これはレガシープロジェクトである場合は3.0を休止、2.0 JPAされていないことを知っている、これが3.0または3.xでありますhibernate-annoationsで – pgermosen

+0

hibernate 3.6、申し訳ありません – SkiiNet

答えて

0

あなたはJoinColumnを両側に持つべきではありません。所有者側では、Customerクラスから削除してください。

Customer.java:

@OneToMany(cascade= {CascadeType.ALL}, mappedBy="customer") 
private List<BankAccount> bacct; 

BankAccount.java:

@ManyToOne 
@JoinColumn(name="user_id") 
private Customer customer; 
+0

私はそれをしましたが、同じエラーがコンソールに表示され続けます。それは私のデータベースの問題かもしれませんか?または休止状態の設定ファイル? – SkiiNet

+0

私はpomファイルを改訂しました。私は間違った依存関係を持っていました。間違ったインポートをしていたので、それが私にその問題を与えていたのです – SkiiNet

関連する問題