1

User と Place witch という 2 つのエンティティは、多対多の関連付けでバインドされています。getter メソッドを使用して特定のユーザーのすべての場所を取得しようとすると、空のリストが返されますが、ユーザーはデータベース内の場所にバインドされており、デフォルトのフェッチ戦略を熱心に変更すると、すべての場所を見ることができます大丈夫。永続化のためにMySQLを使用しています。使用される注釈は次のとおりです。 User エンティティの場合:

@ManyToMany
@JoinTable(name= "USER_PLACE",
joinColumns = {@JoinColumn(name="USER_ID")},
inverseJoinColumns = {@JoinColumn(name="PLACE_ID")}) 
private List<Place> places = new ArrayList<Place>();

Place エンティティの場合:

@ManyToMany(mappedBy = "places")
private List<User> users = new ArrayList<User>(0);

これの原因は何ですか?

4

1 に答える 1

2

私には、ドメインモデルのマッピングの問題のように見えます。提供されたエンティティは別の場所にもマップされますか? 他のテーブルとの異常な結合に遭遇する可能性があります。関連するすべてのエンティティを提供していただけますか? また、User.getPlaces() に対して Hibernate によって生成された SQL ステートメントも役立ちます。

于 2013-09-04T08:04:13.623 に答える