- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个表票证,我在其中插入票证,并有一个创建者字段,用于存储该记录创建者的 UserId 整数。在获取过程中,我加入用户表并连接名字和姓氏,并且我的 DTO 具有创建者连接名称的字段createdBy。如何映射派生字段?这是我的引用https://www.jooq.org/doc/3.13/manual/sql-execution/fetching/pojos/我似乎找不到提供这样的场景
问题不在于加入。问题是映射连接后派生的字符串createdBy,而在jooq生成的记录类中是一个整数,因为在数据库表中我存储了userId。
List<MyTickets> mytickets = create.select(....FIELDS).from(TICKETS_).fetch().into(MyTickets.class);
@Override
public Field<Integer> field9() {
return Tickets.TICKETS_.CREATEDBY;
}
最佳答案
在我的回答中,我假设您的计算列将被称为 CREATED_BY_NAME
,而不是 CREATED_BY
,后者是一个已使用的名称,以避免混淆。
如果这是您经常做的事情,您可能会感兴趣一些选项:
CREATED_BY_NAME
列。许多数据库也可以插入/更新 View ,因此使用 View 替换表不会造成很大的损失。对于您的客户端逻辑来说,此列的来源将是透明的。如果您想使用 UpdatableRecord
,您必须使用 synthetic primary key flag 告诉 jOOQ 的代码生成器 View 的底层主键是什么。 .GENERATED ALWAYS AS ...
语法(或您的方言使用的任何语法)在表上使用计算列。并非所有方言都支持此功能,但这是一个很好的功能,可以将表转换为 View ,而无需额外的 View 对象。CREATED_BY_NAME
等列的所有 getter/setter。CREATED_BY_NAME
)并单独映射 CREATED_BY_NAME
列。只需保留对 jOOQ Result
和/或 Record
的引用,并对其执行多次 map/intoXYZ()
调用即可。关于java - 使用 JOOQ 中的 RecordMapper 将派生列映射到 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60433834/
我无法使用 RecordMapper 映射器 来映射通过 fetchOne/fetchAny 检索到的单个记录。 如果我使用例如(如手册中所示) List list = create.selectF
我知道我可以获取这样的 map : this.ctx.select( shopSubscription.field(SHOP_SUBSCRIPTION.SHOP_ID),
我想实现我自己的 RecordMapper 并使用 Mapstruct 将记录映射到 POJO。我不太明白如何实现这一点。我遵循了文档的这一部分:https://www.jooq.org/doc/3.
我有一个表票证,我在其中插入票证,并有一个创建者字段,用于存储该记录创建者的 UserId 整数。在获取过程中,我加入用户表并连接名字和姓氏,并且我的 DTO 具有创建者连接名称的字段createdB
我是一名优秀的程序员,十分优秀!