在一定时间范围内进行选择时,Mybatis sql无法按预期工作?

时间:2018-10-14 01:32:02

标签: spring-data mybatis spring-mybatis mybatis-generator

我试图在两次之间进行选择。

顺便说一句,我正在使用带有简化的mybatis框架的springdata。

mybatis最终生成的sql是:

reparing: select * from somtable `product` where `product`.create_time>=? and `product`.create_time<=? and `product`.ou_id=? order by `product`.id DESC limit ? offset ? 

 Parameters: 2016-10-13 00:00:00.0(Timestamp), 2019-10-13 00:00:00.0(Timestamp), 1(Long), 10(Integer), 0(Integer)

结果为0。

但是当我在mysql工作台上尝试时,它会选择3个结果。

createTime的Java类型是Date,而JDBC类型是BigInt。

我很确定没有格式问题。

我想知道为什么吗?

这是我定义实体的方式。

package com.iot.products.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.springframework.data.annotation.*;
import org.springframework.data.mybatis.annotations.*;
import org.springframework.data.mybatis.autoconfiguration.handlers.DateNumericTypeHandler;
import org.springframework.data.mybatis.domains.LongId;
import org.springframework.data.repository.query.parser.Part;

import java.util.Date;

@Data
@MappedSuperclass
@JsonIgnoreProperties({"new"})
public class AbstractAuditable extends LongId {

    @CreatedBy
    @Column(name = "creator")
    @Condition
    protected Long creator;

    @CreatedDate
    @Column(name = "create_time")
    @TypeHandler(DateNumericTypeHandler.class)
    @org.springframework.data.mybatis.annotations.JdbcType(JdbcType.BIGINT)
    @Conditions({
            @Condition(type = Part.Type.AFTER, properties = "startTime"),
            @Condition(type = Part.Type.BEFORE, properties = "endTime")
    })
    protected Date createTime;

    @LastModifiedBy
    @Column(name = "modifier")
    protected Long modifier;

    @LastModifiedDate
    @Column(name = "last_modify_time")
    @TypeHandler(DateNumericTypeHandler.class)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @org.springframework.data.mybatis.annotations.JdbcType(JdbcType.BIGINT)
    protected Date lastModifyTime;

    @Transient
    protected Date startTime;

    @Transient
    protected Date endTime;


}

0 个答案:

没有答案