问题标签 [jooq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3244 浏览

hibernate - 如何将 ResultSet 的对象转换为 Hibernate Entity Bean

我有一个项目,在这个项目开始的时候我们选择了Hibernate而不是JDBC进行持久化,但是我们发现Hibernate不能适用于这个应用中的所有情况,所以在这些Hibernate不能应用的情况下我们必须使用JDBC进行持久化申请。最后,我们选择 jooq 而不是 JDBC。所以这个应用中有两种持久化技术,即Hibernate&Jooq。现在,我们要将 jooq 创建的 ResultSet 转换为 Hibernate Entity Beans。我搜索了有关 Hibernate 的资源,但没有找到任何东西。似乎 Hibernate 没有它的 API。

所以,我有几个问题!

  1. 如何获取 Hibernate 的当前上下文?
  2. 如何使用此上下文(在问题 1 中提到)将 ResultSet 的对象转换为 Hibernate Entity Bean?

谢谢大家。

0 投票
1 回答
1574 浏览

java - Mysql 流结果集和 jOOQ fetchLazy

通常,当我想使用 Mysql 查询大型结果集时,我会写这个(取自这个答案):

现在我正在使用jOOQ 2.0.5,但我无法获得相同的结果。

我试过打电话fetchLazy没有运气,它将整个结果集加载到内存中:

作为一种解决方法,我可以使用 sql 查询query.getSQL()并创建一个适合Statement执行它的方法。

还有另一种使用 jOOQ 获得流结果集的方法吗?

0 投票
2 回答
2735 浏览

java - jooq 启动:命令行生成类

您能帮我更改此命令行以在 MacOS 中使用它吗?jar 文件将在桌面上

java -classpath jooq-2.0.0.jar;jooq-meta-2.0.0.jar;jooq-codegen-2.0.0.jar;mysql-connector-java-5.1.18-bin.jar;. org.jooq.util.GenerationTool /guestbook.xml

谢谢你。F。


更新:

好的,这是完整的行和我得到的错误。所有列出的 jar 都存在于该文件夹中:

java -classpath ~/Desktop/JOOQ/jooq-2.1.0.jar:~/Desktop/JOOQ/jooq-meta-2.1.0.jar:~/Desktop/JOOQ/jooq-codegen-2.1.0.jar:~ /Desktop/JOOQ/mysql-connector-java-5.1.15-bin.jar:. org.jooq.util.GenerationTool /bookstore.xml

线程“main”中的异常 java.lang.NoClassDefFoundError: org/jooq/util/GenerationTool 原因:java.lang.ClassNotFoundException: org.jooq.util.GenerationTool at java.net.URLClassLoader$1.run(URLClassLoader.java:202 ) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$ AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)


更新 2

如果我更改删除 ~/ 并使用的路径:

java -classpath /Users/fabio/Desktop/JOOQ/jooq-2.1.0.jar:/Users/fabio/Desktop/JOOQ/jooq-meta-2.1.0.jar:/Users/fabio/Desktop/JOOQ/jooq- codegen-2.1.0.jar:/Users/fabio/Desktop/JOOQ/mysql-connector-java-5.1.15-bin.jar org.jooq.util.GenerationTool /Users/fabio/Desktop/JOOQ/bookstore.xml

我得到了一个不同的错误:

2012 年 4 月 1 日下午 5:19:52 org.jooq.tools.JooqLogger 错误严重:找不到 /Users/fabio/Desktop/JOOQ/bookstore.xml 2012 年 4 月 1 日下午 5:19:52 org.jooq.tools。 JooqLogger 错误严重:-----------
2012 年 4 月 1 日下午 5:19:52 org.jooq.tools.JooqLogger 错误严重:请确保它位于类路径上并符合类路径位置. 2012 年 4 月 1 日 5:19:52 PM org.jooq.tools.JooqLogger 错误严重:如果它位于当前工作目录,请尝试在路径中添加“/” 2012 年 4 月 1 日 5:19:52 PM org .jooq.tools.JooqLogger 错误严重:用法:GenerationTool

0 投票
1 回答
1361 浏览

java - Jooq - 忽略重复

我目前正在将 Jooq 用于一个项目,但我需要一种方法来忽略插入时的重复键。

我有一个要写入表的对象数组,但如果它们已经存在,由 START_TS 和 EVENT_TYPE 上的复合唯一索引确定,我希望插入静默失败。

我的代码看起来像这样:

这样的解决方案将是理想的:https ://stackoverflow.com/a/4920619/416338

我想我需要添加如下内容:

但是无论我添加什么,它似乎仍然会在重复项上引发错误。

0 投票
2 回答
645 浏览

java - 过多的 ORM POJO 领域模型类对 Java PermGen Space 有什么影响?有可用的指标吗?

在像 Hibernate 等使用 JPA/ORM 时,通常定义 Java bean/POJO 来表示映射到相应 RDBMS 表的实体。但是,我正在尝试开发的平台涉及支持 200,000 个此类实体。如果我必须使用标准的 Spring MVC + Hibernate 模型,我最终可能会创建 200K 模型 POJO、200K DAO 类和另外 200K 左右的 JavaBeans,其中包含的数据格式可以在视图中显示。除了 Spring、Hibernate 和许多其他库所需的 Java 类之外,这相当于大约 60 万个 Java 类。假设每个 POJO Model 类有 10 个 String 实例变量及其对应的 getter/setter。现在我想知道加载所有这些类需要多少 PermGen 空间。

找到 PermGen Space 开销的最佳方法是什么?一个疯狂的想法是编写一个程序来生成这些 200K 类,加载它们(但不创建它们的实例)并运行分析器来识别“没有实例的类”指标以及如何获取它们的永久大小。

事实上,我也在寻找一个更简单的解决方案,它可以只使用 Field Vs Value Map 的 java.util.Map,其中 Field 包含有关 RDBMS 表/列映射和生成 JDBC CRUD 语句的元数据(例如JOOQ.org没有新类的开销)。

目标是运行节目而不必使用太多反射和加载太多只携带数据的类!

非常感谢您对此事的任何帮助。

0 投票
1 回答
9541 浏览

java - 按名称实例化 jooq 字段<>

我正在尝试使用 jOOQ 在一些通用代码中构建 SQL 查询。我对使用 jOOQ 执行这些查询或检查结果不感兴趣。另外,这段代码是通用的,所以我不能使用 jOOQ 的代码生成。

我已经设法弄清楚了这么多:

但是 Factory.field() 和 from() 采用通用 SQL 而不是实际的表或字段名称,因此没有引用(即使使用 RenderNameStyle.QUOTED 时)也没有针对 SQL 注入的保护。

有没有办法创建一个知道它们的名字的字段或表?理想情况下,我可以通过名称和父表指定一个字段,jOOQ 为我构建“sometable”。“somefield”字符串。

0 投票
1 回答
1943 浏览

java - 如何在 jOOQ 代码生成器和 Maven 中使用自定义策略?

对于jOOQ,我可能希望将jOOQ 代码生成器与 Maven自定义生成器策略结合使用。看起来好像可以这样做(省略不相关的部分):

上面的配置描述了这个问题。jOOQ 的代码生成器与 Maven 生命周期的 generate 目标挂钩,该目标发生在生命周期的 compile 目标之前。然而,对于代码生成,它需要一个预编译的自定义策略类,否则我会得到一个ClassNotFoundException. Maven如何解决这个问题?generate我可以在执行目标之前编译一个类吗?

0 投票
1 回答
934 浏览

mysql - 从现有查询创建 count() 查询

编辑:我使用 1.6.8 版的 jOOQ;在较新的版本中,这应该可以工作(见答案)

我正在为我的 Java Web 应用程序编写一个网格模型,用于Jooq处理通过分页、排序等获取数据...

首先,我创建一个选择factory.select(...)并将这个 ( SelectConditionStep) 作为参数传递给我的网格模型,我在其中添加所需的.limit().orderBy()基于参数的。

但我现在的问题是我还需要知道结果的总数(不仅仅是 1 页)来计算总页数。所以我的问题是是否有可能以某种方式从给定的SelectConditionStep.

我想将其包装为计数查询中的子查询;就像是:

(不起作用,只是为了展示这个想法)

在 MySQL 中,我会这样做:

我拥有的当前代码:

0 投票
1 回答
2668 浏览

java - How to use Jooq to query for a column case-insensitive?

I am using jOOQ with PostgreSQL, and I just realize that my column is case sensitive. Using jOOQ, I didn't found a correct method to query a column, ignoring its case sensitivity. Looking at here : jOOQ TableField Method, I can see that there's equalIgnoreCase. But in the jooq class itself, that method is not there.

Does anybody know what did I do wrong here?

0 投票
2 回答
10805 浏览

java - 如何查看 jOOQ 执行的 SQL 语句?

我使用 jOOQ 从表中查询/插入/更新数据。

有没有办法查看 JOOQ 执行的 SQL 语句?