java - Hibernate 查询不从数据库检索数据

标签 java spring hibernate

在我的 spring 项目中,我的 Dao 类中有这个方法来返回表中所有行的列表:

@SuppressWarnings("unchecked")
@Transactional
public List<E> findAll() {
    try {
        List<E> instance = sessionFactory.getCurrentSession().createCriteria(entity.getClass()).list();
        System.out.println("returned instance with "+instance.size()+" items");
        return instance;
    } catch (RuntimeException re) {
        System.out.println("returned null");
        return null;
    }
}

这个方法是从我的服务类的这个方法调用的:

@PreAuthorize("hasPermission(#user, 'listagem_'+#this.this.name)")
@Transactional
public List<E> listagem() {
    return dao.findAll();
}

最后一个是从我的 Controller 的这个方法调用的:

@RequestMapping(value="listagem/{pagina}/{items}/{ordem}")
@PreAuthorize("hasPermission(#user, 'listagem_'+#this.this.name)")
public ModelAndView listagem(@PathVariable("pagina") String pagina, @PathVariable("items") String items, @PathVariable("ordem") String ordem) {
    ModelAndView mav = new ModelAndView();
    mav.setViewName("privado/"+this.getName()+"/listagem");

    mav.addObject("lista", serv.listagem());
    mav.addObject("pagina", pagina);
    mav.addObject("items", items);
    mav.addObject("ordem", ordem);

    return mav;
}

@RequestMapping(value="listagem.json", method=RequestMethod.GET)
@PreAuthorize("hasPermission(#user, 'listagem_'+#this.this.name)")
public ModelAndView listagem_json(@RequestParam("pagina") String pagina, @RequestParam("items") String items, @RequestParam("ordem") String ordem) {
    ModelAndView mav = new ModelAndView();
    mav.setViewName(this.getName()+"/listagem");

    mav.addObject("lista", serv.listagem());
    mav.addObject("pagina", pagina);
    mav.addObject("items", items);
    mav.addObject("ordem", ordem);

    return mav;
}

问题是 Dao 类中的 findAll 方法返回零个元素,尽管我确保数据库中的表至少填充了一行。

谁能看出这里出了什么问题吗?我在其他项目中使用了相同的代码,并且没有任何问题。当前的项目是我第一个将通用 Dao 类与通用 Controller 和服务类一起使用的项目。

最佳答案

如何尝试使用setResultTransformer();

List<E> instance = sessionFactory.getCurrentSession().createCriteria(entity.getClass())
                    .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();

关于java - Hibernate 查询不从数据库检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283036/

相关文章:

java - 错误: onCreate(Bundle) is already defined in this activity

Java:何时将服务器层组件作为守护程序 JAR 运行,何时使用 EAR

java - 使用 Hibernate 在运行时创建数据库?

java - 使用 Java 中的基本身份验证连接到 URL - java.net.ConnectException : Connection refused: connect

Java linux 如何 move 鼠标光标

java - 从服务类中调用时,Spring @Transactional 不适用于带注释的方法

apache - Spring Session 复制问题

java - Spring aop 切入点表达式访问方法返回类型

java - @Version 在插入期间抛出 IncompleteClassChangeError

java - 我如何处理 Hibernate 中的身份与平等?