sql-server - 从 Entity for Hibernate 中的 @where 子句中转义关键字
问题描述
我有一个实体类,如下所示。
@Entity
@Table(name = "user_MAIN" )
public class userDetails implements Serializable {
@Id
@Column(name = "user_ID")
private int userId;
@OneToMany
@JoinColumn(name = "user_ID", insertable = false, updatable = false)
@Where(clause = "CAST(START_DATE AS DATE) <= CAST(getDate() AS DATE)")
private Set<userContractBasic> userContract=new HashSet<userContractBasic>();
}
我想将其userContractBasic
与具有 where 条件的实体一起加入START_DATE > current_date
。在这里,我只需要日期检查,而不是日期时间检查。所以我添加了CAST
in@where
子句。
但是在CAST
获取所有结果的同时添加查询后:
SELECT <fields>
FROM user_main um
LEFT OUTER JOIN user_contract uc ON um.user_id=uc.user_id
AND CAST(uc.START_DATE AS uc.DATE) <= CAST(getDate() AS uc.DATE)
DATE
关键字 in子句前面ON
带有表别名及其中断查询。
有什么办法可以避免吗?
解决方案
您无需在此处指定 AS 关键字,只需更改您的 @Where 即可
@Where(clause = "CAST(START_DATE) <= CAST(getDate())")
推荐阅读
- javascript - Discordjs messagecollector 选择特定频道
- python - Matplotlib 在不同部分绘制具有不同颜色的连续图
- r - 在 Highcharts R 中叠加正态分布
- c++ - 带有默认参数的包装方法,该参数是指向另一个包装类型的空指针
- cmake - flatbuffers - 无法用 cygwin 编译
- reactjs - Mapbox react - 使用位置点列表显示路线并调整到最近的道路
- linux - 如何通过 gfortran 编译器编译/链接 ratfor 代码?
- python - Django'float'对象在使用登录装饰器时没有属性'user'
- c - 复制文件的c中的读/写程序,我认为复制时间太长
- python - Python 类型:文字类型参数的验证装饰器