看来使用ActiveJDBC是有很大限制的
我有三个表 a、b 和 c,它们都有文本列 我想要所有这些表的并集
我试过了
LazyList<A> list = A.findBySQL("(select name as text from a) union (select version as text from b) union (select id as text from c)
我尝试过
LazyList<A> list = A.findBySQL("select a.* from ((select name as text from a) union (select version as text from b) union (select id as text from c)) as a");
都不起作用。还有其他方法可以得到这三个表的并集吗?
最佳答案
请记住,ActiveJDBC 是一种 ORM,查询返回的所有属性都必须与每个模型的表架构匹配。请参阅此处:Model#findBySQL()
具体来说,JavaDoc 指出:“确保查询返回与该模型关联的所有列,以便生成的模型能够正确地 self 补充”
这意味着您无法随意选择任何想要的内容,但查询必须仅选择与其前面的表相关的列。如果您只需要使用任何原始 SQL 并返回您需要的任何内容,则可能需要使用类 Base 或 DB。请参阅此 JavaDoc 了解更多信息:
阅读文档以确定哪种方法最适合您。
关于java - 带有 ActiveJDBC 的原始 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28053440/