Java spring数据postgresql在null时保存默认值

Java spring数据postgresql在null时保存默认值,java,postgresql,spring-data,Java,Postgresql,Spring Data,我有一个postgred db和表,其中包含以下列: TIMESTAMP BIGINT DEFAULT (date_part('epoch'::text, now()) * (1000)::DOUBLE PRECISION) NOT NULL, 我想在那里存储毫秒计数,就像Java中的System.currentTimeMillis一样。 我希望博士后在每次插入时都能为我这样做。但我不能像在mysql中那样存储时间戳为空的记录。我想让它触发def。列为null时的值。我有一个spring数据

我有一个postgred db和表,其中包含以下列:

 TIMESTAMP BIGINT DEFAULT (date_part('epoch'::text, now()) * (1000)::DOUBLE PRECISION) NOT NULL,
我想在那里存储毫秒计数,就像Java中的System.currentTimeMillis一样。 我希望博士后在每次插入时都能为我这样做。但我不能像在mysql中那样存储时间戳为空的记录。我想让它触发def。列为null时的值。我有一个spring数据jpa类,列为:

@Column(nullable = false,
            columnDefinition = "BIGINT DEFAULT (date_part('epoch'::text, now()) * (1000)::DOUBLE PRECISION) NOT NULL")
    public BigDecimal getTimestamp() {
        return timestamp;
    }
但这两者都不是,也不是

@Column(insertable=false,...)
工作。此外,我还有一个存储库,本专栏也涉及其中

@Query( "select c from ChatMessages c where"
            + " c.messageType in (:messageTypes) "
            + "and c.clientType=:clientType "
            + "and c.nextMessageId is null "
            + " and c.processed=0 "
            + "and c.timestamp+:delta<=:currentTimestamp" )
    List<ChatMessages> findEligibleRecords(
            @Param("currentTimestamp") Long currentTimestamp,
            @Param("delta") Long delta,
            @Param("clientType") ClientTypeEnum clientType,
            @Param("messageTypes") MessageTypes... messageType);
@Query(“从聊天室消息中选择c,c在哪里”
+“c.messageType输入(:messageTypes)”
+“和c.clientType=:clientType”
+“而c.nextMessageId为空”
+“和c.processed=0”

+ "c.timestamp+:deltaIn postgres
DEFAULT
将替换任何
NULL
我想你想在插入之前打开
谢谢,但这听起来很奇怪,因为它对于db-like-postgres非常简单。另外,我会做thigger,但如何告诉hibernate将此列用作只读?而且,默认值对我来说并不替换NULL。我尝试过ev任何事情,它总是抱怨。我不认为默认值应该替换空值,它应该只设置值,而不是插入的一部分。在postgres
default
中,它将替换任何
NULL
我想你想在插入之前启用
谢谢,但这听起来很奇怪,因为对于类似db的postgres来说,这非常简单。总之,我会这么做,但如何告诉hibernate将此列用作只读?另外,默认值对我来说并不能替换null。我尝试了所有方法,但总是抱怨。我认为默认值不应该替换null,它应该只设置值,而不是插入的一部分。