java - 如何使用门面方法将实体转换为列表

标签 java persistence

我正在尝试使用“listarEntregaKitRegistro”方法从该列表中添加和删除对象,但应该显示列表的 .xhtml 不会在屏幕上显示任何内容。

Kit 是我数据库中的一个实体类,kitFacade 是一种方法,允许您获取有关本例套件中某个实体的列表,kitFacade 也是由 netbeans 作为实体类的 session bean 生成的,实际上是 kitFacade.findAll()运行良好并从该列表中检索所有元素,但我需要获取它们,但有一些异常(exception)。

public List<Kit> listarEntregaKitRegistro(){
 for (int i=0; i<=kitFacade.findAll().size(); i=i+1){    
    if (kit.getEstadoKit()=="Activo"){
        kitFacade.findAll().add(i, kit);
        }
    else {
          kitFacade.findAll().remove(i);
          }
    }
    return kitFacade.findAll();
}

glassfish 服务器 4.1.1 抛出异常:

Caused by: java.lang.ClassCastException: com.entity.Kit cannot be cast to 
java.util.List
at com.controller.KitController.paraEntregar(KitController.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at javax.el.ELUtil.invokeMethod(ELUtil.java:332)

最佳答案

我不知道您在哪里将 Kit 转换为 List。但你做的字符串比较是错误的。可能在您的其他函数中您正在将对象转换为列表。这是经过一些修改的代码。

public List<Kit> listarEntregaKitRegistro(){
 List<Kit> list = kitFacade.findAll();
 for (int i=0; i<=list.size(); i++){    
    if (kit.getEstadoKit().equals("Activo")){ // compare String by Equals method
       list.add(i, kit);
     }else{
      list.remove(i);
       }
    }
    return list;
}

关于java - 如何使用门面方法将实体转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55390296/

相关文章:

clojure - 在 Clojure 中保存映射/结构的最简单方法是什么?

java - 使用 spring redis 存储库检索存储的 POJO 的 TTL

persistence - 不同服务器上的 EclipseLink 复合持久性单元,无需 <jar-file>

java - JPA的上下文注入(inject)

java - Dagger 在注入(inject)嵌套依赖项时抛出 IllegalStateException

java - 构建 git repo 时使用 Jenkins 交换密码参数

java - 使用 JPA 时如何在部署时设置序列的模式名称?

java - 另一个 MySQL 连接问题

Java:当用户输入超出范围的数字时是否存在异常

java - 屏幕分辨率java代码