有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JPQL中默认查询中的java错误列

从数据库中填充Jtable的数据时,我遇到以下错误:

Internal Exception: java.sql.SQLException: no such column: ERROR
Call: SELECT name, class, adm, year, dob, ERROR FROM STUDENTS

以下是我的疑问:

entityManager = java.beans.Beans.isDesignTime() ? null :  javax.persistence.Persistence.createEntityManagerFactory("jdbc:sqlite:C:\\Users\\Xcoder\\De    sktop\\jtable\\school.dbPU").createEntityManager();
    studentsQuery = java.beans.Beans.isDesignTime() ? null :     entityManager.createQuery("SELECT s FROM Students s");
    studentsList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : studentsQuery.getResultList();
    jScrollPane1 = new javax.swing.JScrollPane();
    jTable1 = new javax.swing.JTable();

我的问题是,在哪里可以调用此错误列


共 (1) 个答案

  1. # 1 楼答案

    你的Students对象是否包含error字段?如果是这样,并且没有将其标记为@Transient或类似的内容,那么它将被用作查询中的一列

    我可能还建议您稍微清理一下代码,例如:

    if (Beans.isDesignTime()) {
        entityManager = Persistence.createEntityManagerFactory("jdbc:sqlite:C:\\Users\\Xcoder\\De    sktop\\jtable\\school.dbPU").createEntityManager();
        studentsQuery = entityManager.createQuery("SELECT s FROM Students s");
        studentsList = studentsQuery.getResultList();
    } else {
        studentsList = Collections.emptyList();
    }
    

    也不确定为什么要使用Beans.isDesignTime(),这是一件有点奇怪的事情。IDE通常使用它来检查您是否正在设计GUI