我的项目中有一个要求,其中“日期”过滤器需要应用于管道定界字段。
如何最好地使用Criteria API来实现相同的目标?
New instance
New instance
New instance
答案 0 :(得分:0)
我认为使用.sqlRestriction可以解决您的问题。检查以下代码:
Session session = ... ;
Criteria c = session.createCriteria(Flyout.class);
c.add(Restrictions.sqlRestriction("substring_index(substring(Date_flyout,2),',',1) between ? and ?",
new Object[]{"06-01-2017", "07-10-2017"},
new Type[]{StandardBasicTypes.STRING, StandardBasicTypes.STRING}));
List<Flyout> tList = c.list();
for (Flyout f : tList) {
System.out.println(f.getName() + " - " + f.yourTableProperyDateHere());
}
session.close();
substring(Date_flyout,2)
-从字符串中忽略起始管道
substring_index(substring(Date_flyout,2),',',1)
-忽略起始管道后从第一个管道中分割文本