ORMLite - 查询外域

2024-01-09

使用 Android 版 ORMLite,我需要构建一个按订单 ID 或客户名称返回订单的查询。请考虑以下类声明:

@DatabaseTable(tableName = "order")
public class Order {
    @DatabaseField(generatedId = true)
    private Long id;

    @DatabaseField(foreign = true, canBeNull = false, foreignAutoRefresh = true, columnName = "customer_id")
    private Customer customer;

    // default constructor, getters and setters...
}

@DatabaseTable(tableName = "customer")
public class Customer {
    @DatabaseField(generatedId = true)
    private Long id;

    @DatabaseField
    private String name;

    // default constructor, getters and setters...
}

我正在寻找的原始 SQL 是这样的:

SELECT 
    o.* 
FROM
    order o
    JOIN customer c on
        o.customer_id = c.id
WHERE
    (o.id = ?) OR (c.name = ?)

使用 ORMLite 执行此操作的最佳方法是什么?


ORMLite http://ormlite.com/现在支持简单的连接查询 http://ormlite.com/docs/join-queries.

所以你的查询看起来像这样:

QueryBuilder<Customer, Integer> customerQb = customerDao.queryBuilder();
SelectArg nameSelectArg = new SelectArg();
// this gives the c.name = ?
customerQb.where().eq("name", nameSelectArg);
QueryBuilder<Account, Integer> orderQb = orderDao.queryBuilder();
SelectArg idSelectArg = new SelectArg();
// this gives the o.id = ?
orderQb.where().eq("id", idSelectArg);
orderQb.join(customerQb);
// then you set the args and run the query
nameSelectArg.setValue("jim");
idSelectArg.setValue(1);
List<Order> results = orderQb.join(customerQb).query();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ORMLite - 查询外域 的相关文章

随机推荐

  • 什么是脚手架?它是特定平台的术语吗?

    脚手架 是什么 这是仅限 Rails 的东西吗 脚手架通常是指快速设置应用程序的骨架 它不仅仅是 Rails 因为其他平台也有它 它通常也不意味着是一个 最终 系统 只是第一个 最小的方法
  • 在 Python 中使用 Re 删除双空格/制表符组合

    我想使用 Re 模块将 Python 中存在连续制表符和 或空格的所有实例替换为单个空格 我不想删除新行 这排除了 s 推荐 目前我有 formateed string re sub t formateed string formateed
  • 如何使用流获取嵌套集合中的所有元素

    我有一个包含不同嵌套集合的类 现在我想接收嵌套集合的所有元素 具体我想收集集合的所有 StrokePoints 我可以用 旧 java解决它 但如何用流来解决它 int strokesCounter 0 List
  • 名为“DefaultApi”的路由已在路由集合中

    这个问题可能看起来重复 但这略有不同 在所有其他问题中 我注意到他们注册了多条路线 但就我而言 我只有一条路线 我正在创建 asp net webapi framework 4 5 并且在 RegisterRoutes 方法中只有一条路由
  • 在本地找不到元数据

    在本地机器上 我安装了一个带有 Maven 存储库的 Artifactory 并且我的项目有一个非常简单的 pom 文件 它指向它
  • 在安全的 Android 锁屏中使用 FLAG_SHOW_WHEN_LOCKED 和 disableKeyguard()

    上下文 最近 我一直在寻找可靠的方法来控制安全的 Android Keyguard 主要是显示自定义锁屏 我知道谷歌已经声明自定义锁屏不受该平台的正式支持 并且应该预料到事情会被破坏 但是 利用现有的 API 我相信一定有办法做到这一点 我
  • Linux 下 C 语言的公钥实现

    我正在尝试使用公钥加密来签名并稍后验证文件 该文件是一个简单的纯文本文件 其中包含用于创作目的的用户信息 我尝试了不同的站点来实现公钥加密算法的 C 实现 但我没有找到任何东西 许多网站都指出使用证书 x 509 等 但这远远超出了我的需要
  • 如何使用带有变量表名称和条件的立即执行

    我想创建一个 PL SQL 函数 该函数传递一个表名和一个条件 并返回该表上满足条件的行数 我创建了这个函数 CREATE OR REPLACE FUNCTION CHECK EXISTS TABLE NAME VARCHAR2 CONDI
  • 如何删除除最后五个之外的所有 Git 提交

    我有一个非常大的 Git 存储库 其中仅包含经常更改的二进制文件 当然 Git 存储库是much比其中的实际文件大 我并不真正关心旧的历史记录 我只需要一些较新的历史记录就能够恢复一些错误的更改 假设我想删除除最后五个之外的所有提交 当然
  • Dockerized Node js 应用程序无法启动

    在对我的演示 Express js 应用程序进行 Docker 化并启动容器后 由于以下原因我无法访问该服务 Connection Timeout dockerized 之前的 for 项目的 URL 产生了 Hello world 在浏览
  • 通过相对路径查找外部测试文件进行单元测试 c++ cmake guest

    访问 C 项目单元测试的外部测试文件的正确方法是什么 我正在使用 CMake 和 Gtest 这是目录结构的示例 Project src test unit tests here test data data file here Thank
  • 从ortools获取SAT解决方案列表

    我正在尝试找出如何从以下位置获取可能解决方案的完整列表ortools sat python cp model 我知道我可以打印它们 如下例所示 但我不清楚如何获取这些值 例如作为嵌套列表或字典列表 我尝试通过修改来编写自己的回调类VarAr
  • “创建数据库权限被拒绝”错误

    我在安装了 Windows XP 操作系统的系统上安装了 SQL SERVER 2008 R2 每当我尝试创建新数据库时 它都会显示错误 CREATE DATABASE PERMISSION DENIED IN DATABASE maste
  • echo 在 bash 脚本中输出 -e 参数。我怎样才能防止这种情况发生?

    我读过关于 echo 的手册页 它告诉我 e 参数将允许转义字符 例如换行符的转义 n 具有其特殊含义 当我输入命令时 echo e foo nbar 进入交互式 bash shell 我得到了预期的输出 foo bar 但是当我使用相同的
  • Android css 字体大小 vw vh 响应式替代方案

    安卓上有替代方案吗 我知道我可以为每个屏幕密度和尺寸创建样式文件并在那里更改字体大小 但是提供单一相对 自动可缩放值 就像在 CSS 中那样 会很棒 我很惊讶 Android 没有它 并且 svg 可绘制对象仅在最新的 api 中支持 谢谢
  • 动态创建字段的 Jquery 验证

    我有基本的 javascript 代码来生成输入文本区域 如下所示 btnAdd click function e var itemIndex container input iHidden length e preventDefault
  • 使用不同结合性和相同优先级的相邻运算符消除表达式的歧义

    假设我有一个如下表达式 其中 and 是具有相同优先级但不同结合性的二元运算符 x y z Would y属于 or 并基于什么标准 根据 Edsgar Dijkstra 的调车场算法 http en wikipedia org wiki
  • PHPMailer 发生致命错误

    我正在尝试使用 PHPMailer 通过 gmail SMTP 服务器发送邮件 但出现致命错误 并且找不到任何解决方案 我的 php 文件
  • C++/CLI:为什么我不能通过引用传递字符串?

    为什么 Microsoft 的 C CLI 不允许我通过引用传递字符串 我收到以下错误 C3699 无法在类型 System String 上使用此间接寻址 首先 NET 实际上有两种 Microsoft 特定的 C 方言 较旧的 托管 C
  • ORMLite - 查询外域

    使用 Android 版 ORMLite 我需要构建一个按订单 ID 或客户名称返回订单的查询 请考虑以下类声明 DatabaseTable tableName order public class Order DatabaseField