java - 带有 ActiveJDBC 的原始 SQL

标签 java activejdbc

看来使用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 了解更多信息:

Base#findAll()Base#find() .

阅读文档以确定哪种方法最适合您。

关于java - 带有 ActiveJDBC 的原始 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28053440/

相关文章:

java - 使用java从JSON生成PDF

java - 是否可以使用 Activejdbc 和 Maven 进行仪器模块项目?

java - 如何在 ActiveJDBC 中锁定用户记录?或者当你使用Activejdbc事务时它会自动锁定吗?

java - 使用 IntelliJ IDEA 调试 ActiveJDBC

java - 如何在 activejdbc 中保存从表单提交的值?

eclipse - 带有Eclipse调试功能的ActiveJDBC工具

java - 覆盖Android中顶部菜单问题的后退按钮事件

java - Jena Java Api 读取 RDF 文件?

java - 在 NetBeans 上运行 javaCV

Java Swing 空白屏幕而不是显示的窗口