簡體   English   中英

JOIN子句在Javalite JDBC中使用原始SQL

[英]JOIN clause wne using raw SQL in javalite JDBC

使用原始SQL時可以使用JOIN子句嗎? 如果是這樣,我應該如何映射結果,因為至少涉及2個模型?

您可以使用數據庫提供的任何子句。 運行非標准查詢時,請使用Model.findBySQL(...)方法。

但是,在使用之前,請閱讀其文檔:

http://javalite.github.io/activejdbc/snapshot/org/javalite/activejdbc/Model.html#findBySQL-java.lang.String-java.lang.Object...-

具體來說,這是:

確保查詢返回與此模型相關聯的所有列,以使生成的模型可以正確合並自身。 不屬於此模型的返回列將被忽略,但可用於上述子句。

換句話說,無論您執行什么查詢,它返回的列都應該與此模型的列匹配。 從技術上講,您的查詢可以跨越多個表,視圖,甚至執行自定義功能,但是結果集需要具有與該模型匹配的列。 這是為什么? 因為您的模型在ORM中為“ O”。 換句話說,它表示來自表的單個記錄作為對象。

如果您的結果是多個模型,部分模型或兩者之間的任何混合,請不要使用模型API。 使用基礎:

List<Map> results = Base.findAll("complex custom query");

http://javalite.github.io/activejdbc/snapshot/org/javalite/activejdbc/Base.html#findAll-java.lang.String-

查看find(...)findAll(...)方法的變體

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM