似乎JOOQ完全忽略了数据库列的默认值。既不更新ActiveRecord对象,也不跳过插入时的此列。相反,它尝试将其设置为空,这将在非空列上失败。
示例:
CREATE TABLE bug (
foo int,
bar int not null default 42
);
BugRecord b = jooq.newRecord(BUG);
b.setFoo(3);
b.store();
assertNotNull(b.getBar()); // fails
Record r = jooq.select().from(BUG).fetchO
是否有选项告诉jOOQ生成器将生成的Kotlin数据类的属性变为空或非空,这取决于该列在SQL中是NULL还是NOT NULL。
我知道SQL NOT NULL在使用联接等时并不保证这一点,但我可以使用记录来映射它们。我只想使用数据类将它们传递到应用程序中不想使用jOOQ的不同层,但需要那里的空安全性。
我正在尝试使用UpdatableRecords在jOOQ 3.4.2中插入一条新记录。该模式非常简洁,易于使用,只是INSERT将空值读取为无值,并忽略默认值或生成的索引。如何使用UpdatableRecord执行尊重默认值和生成索引的插入操作?
这是我的桌子:
CREATE TABLE aragorn_sys.org_person (
org_person_id SERIAL NOT NULL,
first_name CHARACTER VARYING(128) NOT NULL,
last_name CHARACTER VARYING(128) NOT NUL
我有dsl和POSTGRES_9_4方言。我尝试在org.jooq.impl.DSL.Condition中使用自定义选择查询:
dsl.selectFrom(TAG_JSON).where(condition("translations ??| array[?]", normValues)).fetch(mapper);
它抛出一个异常:
org.jooq.exception.SQLDialectNotSupportedException: Type class java.util.ArrayList is not supported in dialect DEFAULT
我有一个带有下表的postgreSQL数据库
CREATE TABLE IF NOT EXISTS user_acc
(
name TEXT NOT NULL,
updated TIMESTAMP DEFAULT now()
);
在使用JOOQ时,数据插入如下(Kotlin语言)
val record = create.newRecord(USER_ACC)
record.name = "username"
record.store()
并将记录正确地插入到db中,从now()开始
我的组织托管自己的maven存储库(JFrog),并且所有开发机器都已经配置为总是在企业maven存储库中查找所有Java。
现在,有时我在自己学习新技术,而jar下载有时会失败,因为企业maven central没有那些jar。
[ERROR] Failed to execute goal on project JooqTest: Could not resolve
dependencies for project com.abhi:JooqTest:jar:1.0-SNAPSHOT: The following
artifacts could not be resolved: org.
我们使用的是弹簧启动和弹簧启动-jooq。对于一些复杂的约束检查,会使用触发器来引发带有特定消息的错误。异常在持久性层被捕获并转换为业务异常。
这种行为在去年春季启动版本2.4.x中发生了变化。例如,使用scherma的hsqldb:
CREATE TABLE tab1 (
K INT PRIMARY KEY
)^;
CREATE TRIGGER trig1 BEFORE INSERT ON tab1
BEGIN ATOMIC
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'some error';
EN
在使用jOOQ从一个名为user的表中进行选择时,我得到了以下异常:
jOOQ; bad SQL grammar [insert into user (user_id, account_type) values (?, ?)]; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "user"
我的jOOQ设置是:
private static final Settings jooqSettings = new Settings()
.withRend
当我尝试用jOOQ生成代码时,我得到了很多错误,比如: Ambiguous type name :
The object pg_catalog.unnest generates a type org.jooq.example.gradle.db.pg_catalog.tables.Unnest
which conflicts with the existing type
org.jooq.example.gradle.db.pg_catalog.tables.Unnest on some operating systems.
Use a custo
当我使用jOOQ和MariaDB驱动程序连接到Aurora MySQL数据库时,我的Java应用程序运行良好。在纯文本SQL中,我的查询如下所示,请注意时间戳:
select
A.id, B.x, B.y,
coalesce(A.modified, A.created) as modified
from
A join B on A.b_id = B.id
where
A.created between date_sub(now(), interval 1 day) and now()
or A.modified between date_sub(now(), interva
我对使用JOOQ的类中的泛型类型有一个问题。
public abstract class BaseDataAccessObject<T extends BaseDataClass, U extends UpdatableRecord> {
protected abstract RecordMapper<U, T> getRecordMapper();
public T insert(T data) throws Exception{
//Some code ...
U record = getRecord(data