babyfish-ct / jimmer

A revolutionary ORM framework for both java and kotlin.
Apache License 2.0
866 stars 84 forks source link

[QA] 为什么设置了拦截器,感觉没触发? #675

Closed djkloop closed 1 month ago

djkloop commented 1 month ago

我设置了两个拦截器

DTO代码文件:

QQ_1727059056647

第一个拦截器代码如下图:

QQ_1727058910254 QQ_1727059120271

第二个拦截器代码如下图:

QQ_1727058937515 QQ_1727059152634

使用如下:

QQ_1727059016240

最终接口地方使用:

QQ_1727059181835

2024-09-23T10:30:03.521+08:00 ERROR 6636 --- [x-seed-furnish-server] [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.babyfish.jimmer.sql.runtime.ExecutionException: Cannot execute the batch SQL statement: insert into user(create_time, update_time, is_delete, NAME, PASSWORD, PHONE) values(?, ?, ?, ?, ?, ?)] with root cause

java.sql.SQLIntegrityConstraintViolationException: Column 'create_time' cannot be null

请问下,我现在感觉是因为用户传入的是空值,造成的这个问题,我尝试把input dto里面的createtime用-createTime好像也不行...那我应该如何把 创建时间更新时间 还有是 否用户删除 这三个字段怎么设置才能直接用input的类型的同时又能触发拦截器?第一次使用这个,看了文档有些确实没理解....

babyfish-ct commented 1 month ago

input是完全晚在的东西,拦截器与DTO体系无关,最终底层都是实体,所以不存在既使用input又能触发拦截器这种说法。

你可以先看看标准例子的拦截器,能否在你的机器上工作

babyfish-ct commented 1 month ago

无法重现,另外,Jimmer有更好的逻辑删除支持

babyfish-ct commented 1 month ago

无法重现无反馈,关闭