jjzjj

java - jOOQ "IN"具有 N 次元组的谓词

我需要一个WHERE子句来检查IN列表中的元组:(field1,field2)in(('1',1),('2',2),('3',3))。这是Postgres中的有效SQL。方言:POSTGRESjOOQ版本:3.9.6这种情况下正确的jOOQ语法是什么?jOOQ3.9文档暗示这是可能的,但他们的示例只给出了1级:https://www.jooq.org/doc/3.9/manual/sql-building/conditional-expressions/in-predicate-degree-n/这段代码给出了我正在寻找的近似值,但我无法获得referenceOrderIdLineNu

从列表框中选择项目时,Java Set 不添加对象

我正在为我的应用程序使用Java、Jooq和Zk7但我遇到了一个问题,请参阅我的场景我有Listbox显示模型中的所有记录我点击它时有一个添加按钮我在Listbox中添加新元素类似这样的privateListModelListadminListModelListSort;protectedListModelListadminListModelList;ValidWorkRecordnew_record1=newValidWorkRecord();adminListModelList.add(new_record1);adminNewListModelList.add(new_recor

java - jooq 转换器 : from java. sql.Date 到 java.time.LocalDate

我试过写一个Converter但我无法让它适用于所有时区设置。想法:如果客户端代码有LocalDate,比如20-Aug-2014,并将其保存到数据库中,无论客户端时区是什么,它在数据库中都应该显示为20-Aug-2014。如果数据库包含2014年8月20日的日期,则无论客户端时区是什么,客户端都应收到2014年8月20日的LocalDate。我的测试:@TestpublicvoiddateConverter(){for(intoffset=-12;offset我的转换器:publicclassDateConverterimplementsConverter{@Overridepubl

java - JOOQ 和 Firebird - 超出实现限制

背景:我正在使用jOOQ访问Firebird数据库。Firebird2.x的行大小限制为64KB。我以前从未达到过限制,但是这个特定的数据库使用UTF8,这意味着限制缩小到大约16K个字符。这就是我使用jOOQ的方式:根据需要加载或创建POJO(已生成)。例如:Bookbook=context.fetchOne("select*frombookwherebook_id=?",1).into(Book.class);根据需要使用book对象。如果用户保存更改,则将其作为记录存回。BookRecordrec=context.newRecord(Tables.BOOK,book);conte

java - jOOQ 中的 B/CLOB 处理

这是jOOQ手册中关于这个主题的内容:jOOQcurrentlydoesn'texplicitlysupportJDBCBLOBandCLOBdatatypes.Ifyouuseanyofthesedatatypesinyourdatabase,jOOQwillmapthemtobyte[]andStringinstead.Insimplecases(smalldata),thissimplificationissufficient.Inmoresophisticatedcases,youmayhavetobypassjOOQ,inordertodealwiththesedatatyp

java - 为什么 JOOQ 仅限于整数值而不是长整数?

我是JOOQ的新手,这似乎有点奇怪,为什么我的许多列类型安全为整数,而它们在不久的将来很容易需要是长整数。甚至count(*)结果也必须转换为整数!在当前项目中是否有设置Longasdefault或任何方式设置Longglobally?(任何可能适用的地方)如果这不可能..是否有理由将其作为整数?'这是Scala中的一些代码示例:defloggedInUserOwnsAccount(userId:Long)={selectCount().from(LOGGED_IN,EMAIL_ACCOUNT).where(LOGGED_IN.USER_ID.equal(EMAIL_ACCOUNT.P

java - 在 jooq 中检索 selectCount 的值

我有一些看起来像这样的代码:Recordrecord=jooq.selectCount().from(USERS).fetchOne();目前我正在执行以下操作以获取计数:Integercount=(Integer)record.getValue(0);但似乎必须有更好的解决方案(这是类型安全的……因为这就是使用jooq的全部意义所在)。有什么建议吗? 最佳答案 不幸的是,对于这个特定的查询,没有多少“更好”的方法可以类型安全地获取count()值。要添加类型安全,您可以做的是:Fieldf=count();Integercount

java - jOOQ 和 Spring 事务管理

我使用jOOQ3.8和SpringBoot1.4.1。我看到jOOQ使用一种机制来保证handlingoftransactions.如果我定义了一个注释为事务性的方法并且在执行两个插入时,它们是否在同一事务中执行,例如@Transactional(propagation=Propagation.MANDATORY)publicdoInsert(){DSL.using(configuration).insertInto(...);DSL.using(configuration).insertInto(...);}所有执行的insert在异常情况下会回滚吗?它们会在一笔交易中执行吗?或者,

java - 如何避免 jOOQ 中表别名的引号

我有以下选择查询创建:finalDSLContextcreate=DSL.using(...,SQLDialect.POSTGRES);create.select(DSL.field("identifier"),DSL.field("name"),create.selectCount().from(DSL.table("person")).where(DSL.field("identifier").eq(DSL.field("personOuter.identifier"))).asField("count")).from(DSL.table("person").as("personO

java - jOOQ - 插入多个数据并获取生成的 ID 的一般方法

当我需要每个元素的生成键时,通过jooq插入多个数据的一般方法是什么?通常我会使用批量插入,由于this,目前这是不可能的。.我可以使用create.newRecord(...)并分别插入每个元素。之后ID设置正确,但是这种方式性能不好。我希望有人有更好的方法,我不能是唯一一个需要这个功能的人......非常感谢,脚趾 最佳答案 正如您自己发现的那样,jOOQ3.4.2当前存在问题#3327中记录的限制。关于在DSLContext.batchStore()之后获取ID.一个可能工作得很好的解决方法是创建一个包含所有记录的大型INSE