java - Hibernate Dynamic @Where 子句

标签 java spring hibernate spring-boot

我在@Table 级别有@Where。

我需要获取 EffDate 字段小于当前日期的行。

@Entity
@Table(name="party")
@Where(clause="EffDate < " + currentdate())
public class Party implements Serializable {
.......
}

我理解@Where 采用需要在编译时提供的常量表达式。但我需要与来自 Java 而不是来自数据库的当前日期进行比较。

知道我该怎么做。

最佳答案

您可以为当前时间戳使用 SQL 函数/常量(取决于它可能被调用的数据库类型,例如 current_timestamp)(但是请注意,由于这将是纯 SQL,它将使用来自数据库服务器的时间戳,而不是运行 Java 应用程序的服务器:

@Where(clause="EffDate < current_timestamp") 

关于java - Hibernate Dynamic @Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40246797/

相关文章:

java - Hibernate 中的 map 注释?

Java 组合框错误

java - 按值传递与按引用/指针传递的混淆

java - Spring Boot冲突bean定义异常

java - Eclipse 被导入混淆了 ("accessible from more than one module")

java - spring-kafka监听并发

spring - Spring Boot捕获多个异常并作为错误响应发送

java - Spring Data 可分页投影与 JPA2.1 的左连接

java - Hibernate 带有约束的急切/惰性加载

java - 尝试从现有项目生成变更日志文件时出现错误 "Table name pattern can not be NULL or Empty"