我有一个主键值,我想获取一个记录以进行更新,所以现在我写:
AccountRecord account = db.selectFrom(ACCOUNT).
where(ACCOUNT.ID.eq(identity.getAccountId())).fetchSingle();
JOOQ知道我的表的主键(例如,它会生成onKey()方法等)-因此我希望得到如下结果:
AccountRecord account = db.fetchByKey(ACCOUNT, identity.getAccountId())
但这似乎不是一件事。有没有更简洁的方法使用JOOQ API来做我想要的事情?
您可以使用DSLContext。fetchSingle(表,条件):
AccountRecord account = db.fetchSingle(ACCOUNT, ACCOUNT.ID.eq(identity.getAccountId()));
生成的账户引用没有对键类型的类型引用,因此您建议的语法是不可能的。当然,您可以扩展代码生成器以生成一个方法,该方法采用主键值并生成一个条件:
class Account {
..
public Condition byKey(Long accountId) {
return ID.eq(accountId);
}
public AccountRecord fetchByKey(DSLContext ctx, Long accountId) {
return ctx.fetchSingle(this, byKey(accountId));
}
}
现在使用上面的:
AccountRecord account = ACCOUNT.fetchByKey(db, identity.getAccountId());
我有三张桌子: 用户键表具有来自用户和键表的主键,以建立用户和键之间的关系。 如何使用所有相关键获取用户? 如果存在其他表(例如,UserRoles)等,该怎么办?通常,如何获取用户和所有通过外键表相关的相关行?
我有一个问题..为什么要重复我在fetch方法中选择的内容。 所以我提供了CON\u CAL\u INSTANCE.DATE。min()在我的select子句中,为什么我必须在fetchOne(CON\u CAL\u INSTANCE.DATE.min())中重复它? 还是我做得不对?
Hazelcast数据存储 如何通过传递any键获取值(John)。。 在Hazelcast这可能吗...?
你不知道如何在JOOQ(Java)中创建主键吗?我需要的只是得到正确的创建表字符串。我还没有这段代码(使用SQLDialect。MYSQL): 输出(来自字符串生成器): 我需要的是设置主键以获得正确的输出: 不使用execute()是否可能?因为我只需要它作为字符串,所以我想再次使用only getSQL()命令。。。 我发现了类似这样的东西:DSL。主密钥(“id”); 但我无法将它与rest
是否有一种方法可以编程地列出所有在Jooq中作为外键的字段?它为外键生成了很多静态常量,但没有很好的方法以编程方式访问这些常量。 例如,我有一个表,其中有一个外键字段。在jOOQ中,假设我对的表对象有一个引用,那么似乎没有方法以编程方式获取对jOOQ字段对象的引用。因此,我现在唯一的解决方案是使用文字地图DataStructure在某个地方手动生成这些映射。似乎jooq可以为我做到这一点,我是不是
问题内容: 我正在尝试从ResultSet获取表的主键列。以下是步骤 我跟着: 这是有趣的部分。 现在,如果我观看此变量“ rsmd ”,它将显示相关列名的主键标志,但我无法访问它或将其放入任何变量。 我需要同样的帮助。 注意:我不想使用DatabaseMetadata及其getPrimaryKeys()函数,因为它将对外部数据库产生额外的影响。另外,ResultSetMetadata对象已经具有