私が2つのテーブル(mysql)テーブルAを持っているとしましょう:idA、name、phone
テーブルB:idB、data1、data2、idA
表B:idAは外部キーとして使用され、mysqlワークベンチを介して構成されます。
今、私はjersyでHibernateを使用しようとしています(ある種のREST APIを構築しています)
IDEとしてnetbeansを使用しています。
最後に取得した場合:
- A.java
- B.java
- A.hbm.xml
- B.hbm.xml
B.hbm.xml
<many-to-one name="a" class="DataTypes.A">
<column name="idA" length="45" not-null="true" />
</many-to-one>
...
およびB.java
public class B implements java.io.Serializable {
private Integer idB;
private A a;
...
}
A.java
public class User implements java.io.Serializable {
private String idA;
private String
private Set<B> bs = new HashSet<B>(0);
....
}
およびA.hbm.xmlの一部
<set name="bs" inverse="true">
<key>
<column name="idA" length="45" not-null="true" />
</key>
<one-to-many class="DataTypes.B" />
</set>
主な問題は、hibernateを使用してテーブルAのすべてのエントリを取得する場合、結果はすべてのAレコードの休止状態クエリであり、各レコードについて、B(外部キーのため)を取得した後、B(Set)を検索します。そのAなどのために..
2つの質問:):この再帰の解決策はありますか?または、この循環参照をカットする必要がありますか?私のデータベースモデルは大丈夫ですか?(外部キー)
お時間をいただきありがとうございます。