0

这是我写的方法

        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,但如果这是问题所在,为什么它在第一种情况下返回对象而不是第二种情况。

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

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

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

4

0 回答 0