Hibernate QBE无法按预期工作

时间:2015-03-15 11:49:00

标签: java hibernate query-by-example

这是我写的方法

        public static <T> List selectOnCriteria(SessionFactory sessionFactory, int maxResults, T model)
            {

            List resultList=null;


            session=sessionFactory.openSession();

            Criteria criteria= session.createCriteria(model.getClass());

            criteria.add(Example.create(model).ignoreCase());// only for exact search, uppercase and lowercase are both included in ignorecase
            if(maxResults>0)
            criteria.setMaxResults(maxResults);

            resultList=criteria.list();

            return resultList;
            }

这是我的一个模特

        public class UserModel
        {

        @Id
        private String username;
        private String password;
        private String company;
                  //getters and setters are also defined
                   }

现在假设表格中有一个条目,如此

   Username: Chris
   Password: Nolan
   Company : Syncopy

如果我使用所有这些值填充模型,那么我获得的resultList有1条记录。 但是,如果只使用用户名填充我的模型,在这种情况下是Chris,我收到的结果列表总是一个空的ArrayList。

我的项目JPA规范是2.0,但如果这是问题,为什么它会在第一种情况下返回我的对象​​而不是第二种情况。

其次,如果这是问题所在:有没有其他方法可以设计一个可以采用任何模型的通用类(任何类型,填充任意数量的字段)?

我要做的最后一件事是为我的所有模型创建一个搜索方法。

谢谢,祝你有个美好的一天!

0 个答案:

没有答案