我在Play 2 Framework中使用Ebean,並獲得了兩種模型:用戶模型和書籍模型。用戶模型以OneToMany關係與書籍模型連接。所以每個用戶都可以有很多書或者根本沒有書。書籍模型本身也具有屬性。現在,我想在用戶模型中創建一個查詢,該查詢僅返回擁有特定屬性書籍的用戶。例如:一個屬性可能是條件,如新或使用。現在給我所有擁有新書籍的用戶。 是否可以使用Ebean方法創建這樣的查詢?或者我必須使用原始SQL?OneToMany Relationship的Ebean查詢
4
A
回答
9
假設你有以下型號:
@Entity
public class User extends Model {
@Id
@Column(name = "user_index")
private int id;
@Column(name = "user_first_name")
private String firstName;
[...]
@OneToMany(mappedBy = "book_owner_index")
private List<Book> books;
public static Finder<Integer, User> find = new Finder<Integer, User>(Integer.class, User.class);
[...]
}
和
@Entity
public class Book extends Model {
@Id
@Column(name = "book_index")
private int id;
@Column(name = "book_name")
private String name;
@Column(name = "book_condition")
private String condition;
[...]
@ManyToOne
@JoinColumn(name = "book_owner_index", referencedColumnName = "user_index")
private User owner;
[...]
}
然後,你可以做一個搜索:
List<User> users = User.find.select("*")
.fetch("books")
.where()
.eq("books.condition", "new")
.findList();
0
List<User> users = User.find.select("*")
.fetch("books")
.where()
.eq("t1.condition", "new")
.findList();
對於我來說,它只能當我使用「t1。」時,我正在使用Postgres DB。生成的查詢對於t1有意義。
相關問題
- 1. JPA Hibernate OneToMany relationship
- 2. Spring Hibernate onetomany relationship
- 3. OneToMany relationship not fillulating children
- 4. Unidirectional OneToMany relationship without join表
- 5. OneToMany Relationship Only Only 1 Row
- 6. Ebean ManyToMany查詢
- 7. ebean取多個oneToMany關係
- 8. JPA2.0:刪除OneToMany RelationShip中的實體
- 9. 左外連接Ebean查詢
- 10. Django onetomany查詢
- 11. Ebean - 找到父實體@ManyToMany的@OneToMany = 0
- 12. 用set參數ebean查詢
- 13. Ebean +播放2.0查詢
- 14. Ebean:@OneToMany到同一個實體
- 15. 玩2.0。 Ebean。 OneToMany孤兒去除破壞
- 16. ManyToMany查詢使用播放和ebean
- 17. 學說oneToMany - 查詢一個
- 18. Java的播放框架2.0.4 ebean查詢
- 19. Ebean RawSql未分析的查詢
- 20. 在查詢中使用OR的Ebean
- 21. 添加JsonEqualTo的表達來Ebean查詢
- 22. Ebean插入查詢的空指針異常
- 23. Ebean在播放2.0 - 沒有加入對生成的查詢
- 24. 外鍵查詢播放!框架2. + ebean
- 25. 如何映射查詢使用Ebean
- 26. 返回JPA/Ebean查詢作爲整數
- 27. Ebean:用查詢對象刪除
- 28. Java Spring存儲庫刪除不起作用OneToMany Relationship
- 29. 如何將Ebean子查詢鏈接到主要查詢
- 30. Java play Ebean finder返回的錯誤數據大於查詢
非常感謝!完美的作品。一個後續問題:用戶擁有的書籍數量是否可以輕鬆訂購? – linsenfips
我相信你可以用公式註釋做到這一點。就像用'@Formula(select =「(SELECT COUNT(*)FROM books WHERE book_owner_index = $ {ta} .index)」)'給你的'User'模型添加一個int字段,然後你可以按該字段排序。但這是未經測試的代碼。有關更多詳細信息,請參閱[這裏](http://www.avaje.org/static/javadoc/pub/com/avaje/ebean/annotation/Formula.html)。 – t0mppa
完全如你所說。公式註釋可以做到這一點。再次感謝! – linsenfips