java - Netbeans 中的 JPA,奇怪的事情

标签 java jpa netbeans

我遇到了以下问题。 我有简单的(刚刚开始)网络应用程序。 我创建了新的 Web 应用程序项目,并使用数据库中的 @ManyToOne (因此实际上存在实体)类生成了实体。这就是我尝试运行它时发生的情况。

第一次运行:

内部异常:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“group WHERE (group_id = 1)”附近使用的正确语法错误代码:1064 调用:SELECT group_id, acc_level, name FROM group WHERE (group_id = ?) bind => [1 个参数绑定(bind)] 查询:ReadObjectQuery(name="file:/D:/Projekty/Sell Your Thing/build/web/WEB-INF/classes/_Sell_Your_ThingPU"referenceClass=Group1 )

第二次运行:一切正确 在使 Netbeans 重新编译后(例如我在某处添加一个空格),我得到:

com.model.User cannot be cast to com.model.User

刷新页面几次后我得到这个:

WEB9031: WebappClassLoader unable to load resource [sun.reflect.ConstructorAccessorImpl], because it has not yet been started, or was already stopped

我现在很困惑:/ (我使用glassfish和mysql)

编辑: 我通过将名称从 group 更改为 user_group 解决了第一个错误,因为它是关键字。 我还通过添加解决了最后一个错误

        <property name="openjpa.DynamicEnhancementAgent" value="false"/>
    <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />

在 persistance.xml

我仍然无法解决选角问题。我不明白为什么我有一些类泄漏或其他什么,而我有非常简单的代码。 (在netbeans中生成的实体) 导致错误的方法:

    public String getUserNameById(int id) {
    em = getEntityManager();
    Query q = em.createNamedQuery("User.findByUserId");
    q.setParameter("userId", id);
    User u = (User) q.getSingleResult();
    em.close();
    return u.getName();
} 

我只是在 JSF 中使用它

<h:outputText value="#{userBean.getUserNameById(2)}" />

最佳答案

第一个错误可能是由于您选择group 作为表名称而导致的。 group是保留的SQL关键字,查询无效。选择其他名称(并且不要选择 selectorderinsert 作为名称:-))

关于java - Netbeans 中的 JPA,奇怪的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16821818/

相关文章:

java - 无法导入 java.util.function.*;

java - JFrame 最大化时 ScrollBar 不会调整大小

java - 设置公共(public)类以供其他项目访问

java - 用于指定身份验证架构的 Swagger 配置

java - 使用 spring 和 tomcat 静态编织 eclipselink jpa

java - 当在字段上设置默认值时,JPA/Hibernate 插入 NULL

java - 持久化实体时如何从不可更新字段的数据库返回值?

java - 从 lambda 表达式中抛出的已检查异常

java - AWS - 如何使用 aws-java-sdk-iam 在 JAVA 中获取用户 MFA 启用/禁用值?

java - 如何使用 Jackson 删除 Java 中的空 json 节点?