小编use*_*821的帖子

java.time.Instant field cannot be filled by JPQL query using "current_timestamp" after update to SpringBoot 3 / Hibernate 6

I have a base class for persisted entities like this:

@EntityListeners(AuditListener.class)
@MappedSuperclass
public abstract class BaseEntity {
    @Id
    private String id;
    private Instant createdAt;
    private String createdBy;
    private Instant modifiedAt;
    private String modifiedBy;
    ...
Run Code Online (Sandbox Code Playgroud)

A listener to fill the created/modified fields on persiste/update:

public class AuditListener {
    @PrePersist
    private void onCreate(BaseEntity entity) {
        entity.setCreatedAt(Instant.now());
        entity.setCreatedBy(getIdUserLogged());
    }
    @PreUpdate
    private void onUpdate(BaseEntity entity) {
        entity.setModifiedAt(Instant.now());
        entity.setModifiedBy(getIdUserLogged());
    }
}
Run Code Online (Sandbox Code Playgroud)

For updates made by query the listener would now work and I've manually set …

hibernate jpql spring-boot sql-timestamp

10
推荐指数
1
解决办法
3391
查看次数

标签 统计

hibernate ×1

jpql ×1

spring-boot ×1

sql-timestamp ×1