java jpa mysql 时间,java – 使用Date参数时的Spring Data JPA日期“之间”查询问题

在我的应用程序中,我使用Spring Data和hibernate作为JPA提供程序来持久化和读取数据.

我有顶级实体类:

@Entity

@Getter @Setter

@Table(name = "operation")

@Inheritance(strategy = InheritanceType.JOINED)

@EqualsAndHashCode(of = {"operationId"})

public abstract class Operation implements Serializable {

public static final int OPERATION_ID_LENGTH = 20;

@Id

@Column(name = "operation_id",length = OPERATION_ID_LENGTH,nullable = false,columnDefinition = "char")

private String operationId;

@Column(name = "operation_type_code")

@Getter(AccessLevel.NONE)

@Setter(AccessLevel.NONE)

private String operationTypeCode;

@Temporal(TemporalType.TIMESTAMP)

@Column(name = "begin_timestamp",nullable = false)

private Date beginTimestamp = new Date();

@Temporal(TemporalType.TIMESTAMP)

@Column(name = "end_timestamp")

private Date endTimestamp;

@Column(name = "operation_number",length = 6,columnDefinition = "char")

private String operationNumber;

@Enumerated(EnumType.STRING)

@Column(name = "operation_status",length = 32,nullable = false)

private OperationStatus status;

@ManyToOne(optional = false)

@JoinColumn(name = "user_id")

private User user;

@ManyToOne

@JoinColumn(name = "terminal_id")

private Terminal terminal;

@Column(name = "training_mode",nullable = false)

private boolean trainingMode;

}

对于继承的类,我有相应的存储库:

public interface ConcreteOperationRepository extends JpaRepository

我用以下方法进行集成测试:

@Transactional

@Test

public void shouldFindOperationByPeriodAndStatusAndWorkstationId() {

Date from = new Date(Calendar.getInstance().getTime().getTime());

List

但是由于结果为空而我使用MysqL数据库时此测试失败(但是当我切换到HsqlDB时通过)

此外,如果我在测试开始时将延迟“Thread.sleep(1000)”延迟一秒,就在第一行之后,则此测试通过.

当我从Hibernate日志执行sql时,它给了我正确的结果.我的代码出了什么问题?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值