通过主键 ID 查找对象列表 - Apache Cayenne
Finding a list of objects by Primary Key ID - Apache Cayenne
这与我之前的 有点相关,我在其中讨论了通过外键 ID 查找行。本题针对的是通过主键ID查找对象列表。
在下面的代码中,我试图通过提供 ID 列表来查找 Person
对象的列表。但是 Apache Cayenne 不能这样做,因为 ID_PK_COLUMN
是一个字符串而不是 Property
.
ObjectSelect
.query(Person::class.java)
.where(Person.ID_PK_COLUMN.in(listOfIds)) // <- Cannot perform this
.select(context)
如何按 ID 查找 Person 对象列表?
我知道我们有 Cayenne.objectForPK
但只找到一个对象。
使用 Apache Cayenne 4.1。
由于在 Cayenne 中通常不会将 ID 映射为对象属性,并且 "ID_PK_COLUMN" 是一个 "db:" 属性,您需要为 [= 构建一个 "db" 表达式20=] 方法参数。有一个 API:
ExpressionFactory.inDbExp(Person.ID_PK_COLUMN, listOfIds)
(顺便说一句,Property
只是 ExpressionFactory
之上的语法糖)
这与我之前的
在下面的代码中,我试图通过提供 ID 列表来查找 Person
对象的列表。但是 Apache Cayenne 不能这样做,因为 ID_PK_COLUMN
是一个字符串而不是 Property
.
ObjectSelect
.query(Person::class.java)
.where(Person.ID_PK_COLUMN.in(listOfIds)) // <- Cannot perform this
.select(context)
如何按 ID 查找 Person 对象列表?
我知道我们有 Cayenne.objectForPK
但只找到一个对象。
使用 Apache Cayenne 4.1。
由于在 Cayenne 中通常不会将 ID 映射为对象属性,并且 "ID_PK_COLUMN" 是一个 "db:" 属性,您需要为 [= 构建一个 "db" 表达式20=] 方法参数。有一个 API:
ExpressionFactory.inDbExp(Person.ID_PK_COLUMN, listOfIds)
(顺便说一句,Property
只是 ExpressionFactory
之上的语法糖)