【发布时间】:2019-07-16 23:21:06
【问题描述】:
我必须查询当前日期的时间戳字段并且只获得 1 条记录。 我可以这样写查询:
@Query("Select i From Log i Where i.createdBy = :userId And DATE(i.createdDate) = CURRENT_DATE")
JPA 实体:
@Entity
@Table(name = "log")
public class Log {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "log_id")
private Long logId;
@Column(name = "address")
private String address;
@Column(name = "created_date", updatable = false)
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(style = "yyyy-MM-dd HH:mm:ss")
private Calendar createdDate;
//SETTERS AND GETTERS
}
表格:
CREATE TABLE `log` (
`log_id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`address` VARCHAR(30) NOT NULL,
`created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`log_id`)
)
ENGINE=InnoDB
;
这里我无法限制记录, 我知道我们可以通过发送 Pageable 来限制记录,但我必须再次从列表中获取记录。
有没有办法做到这一点? 我们如何在 spring data jpa 方法名中做到这一点?
【问题讨论】:
标签: spring-boot jpa spring-data-jpa jpql