基于单个列的Criteria API Date字段过滤器

时间:2019-01-24 02:22:03

标签: hibernate hibernate-criteria

我的项目中有一个要求,其中“日期”过滤器需要应用于管道定界字段。

如何最好地使用Criteria API来实现相同的目标?

 New instance
 New instance
 New instance

1 个答案:

答案 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)-忽略起始管道后从第一个管道中分割文本