未知实体 JPA Netbeans

Posted

技术标签:

【中文标题】未知实体 JPA Netbeans【英文标题】:Unknown entity JPA Netbeans 【发布时间】:2012-12-06 00:54:36 【问题描述】:

有人知道错误吗?

        ColegioJpaController jpa = new ColegioJpaController();
        Colegio c = new Colegio();
        c.setId(1);
        c.setDescripcion("Virgen de Guadalupe");
        c.setUbigeo(1234);

        jpa.create(c);

运行: dic 05, 2012 7:48:39 PM org.hibernate.cfg.annotations.Version 信息:Hibernate Annotations 3.3.1.GA dic 05, 2012 7:48:39 PM org.hibernate.cfg.Environment 信息: Hibernate 3.2.5 dic 2012 年 5 月 7:48:39 PM org.hibernate.cfg.Environment 信息:hibernate.properties not found dic 05, 2012 7:48:39 PM org.hibernate.cfg.Environment buildBytecodeProvider 信息:字节码提供者名称:cglib dic 05, 2012 7:48:39 PM org.hibernate.cfg.Environment 信息:使用 JDK 1.4 java.sql.Timestamp 处理 dic 05, 2012 7:48:39 PM org.hibernate.ejb.Version 信息:休眠 EntityManager 3.3.2.GA dic 05, 2012 7:48:40 PM org.hibernate.cfg.AnnotationConfiguration secondPassCompile 信息:未找到休眠验证器:忽略 dic 05, 2012 下午 7:48:40 org.hibernate.connection.DriverManagerConnectionProvider 配置信息:使用 Hibernate 内置连接池(不是 供生产使用!) dic 2012 年 7 月 5 日下午 7:48:40 org.hibernate.connection.DriverManagerConnectionProvider 配置 信息:Hibernate 连接池大小:20 dic 05, 2012 7:48:40 PM org.hibernate.connection.DriverManagerConnectionProvider 配置 信息:自动提交模式:true dic 05, 2012 7:48:40 PM org.hibernate.connection.DriverManagerConnectionProvider 配置 信息:使用驱动程序:com.mysql.jdbc.Driver 在 URL: jdbc:mysql://localhost:3306/academia dic 05, 2012 7:48:40 PM org.hibernate.connection.DriverManagerConnectionProvider 配置 信息:连接属性:user=root, password=****, autocommit=true, release_mode=auto 2012 年 5 月 5 日下午 7:48:40 org.hibernate.cfg.SettingsFactory buildSettings 信息:RDBMS: MySQL,版本:5.5.25a dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:JDBC 驱动:MySQL-AB JDBC驱动,版本:mysql-connector-java-5.1.13( 修订: $bzr.revision-id ) dic 05, 2012 7:48:40 PM org.hibernate.dialect.Dialect 信息:使用方言: org.hibernate.dialect.MySQLDialect dic 05, 2012 7:48:40 PM org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory 信息:交易策略: org.hibernate.transaction.JDBCTransactionFactory dic 05, 2012 7:48:40 PM org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup 信息:无 TransactionManagerLookup 已配置(在 JTA 环境中,使用读写或事务 不推荐二级缓存)dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息: 在 beforeCompletion() 期间自动刷新:禁用 dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:交易结束时自动关闭会话:已禁用 2012 年 5 月 5 日下午 7:48:40 org.hibernate.cfg.SettingsFactory buildSettings 信息:JDBC 批量大小:15 dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:JDBC 版本化数据的批量更新:禁用 dic 2012 年 5 月 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息: 可滚动的结果集:启用 dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:JDBC3 getGeneratedKeys():启用 dic 2012 年 5 月 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息: 连接释放模式:auto dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:最大值 外连接获取深度:2 dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:默认 批量获取大小:1 dic 2012 年 5 月 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:生成 带有 cmets 的 SQL:禁用 dic 2012 年 5 月 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:订单 按主键更新 SQL:禁用 dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:订单 用于批处理的 SQL 插入:禁用 dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory 信息:查询翻译器: org.hibernate.hql.ast.ASTQueryTranslatorFactory dic 05, 2012 7:48:40 PM org.hibernate.hql.ast.ASTQueryTranslatorFactory 信息:使用 ASTQueryTranslatorFactory dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:查询 语言替换: dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:JPA-QL 严格合规:启用 dic 2012 年 5 月 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息: 二级缓存:启用 dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:查询 缓存:禁用 dic 2012 年 5 月 7:48:40 PM org.hibernate.cfg.SettingsFactory createCacheProvider 信息: 缓存提供者:org.hibernate.cache.NoCacheProvider dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:针对最小放置优化缓存:禁用 dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:结构化二级缓存条目:disabled dic 05, 2012 年 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:统计:禁用 dic 2012 年 5 月 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:已删除 实体合成标识符回滚:禁用 dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息: 默认实体模式:pojo dic 05, 2012 7:48:40 PM org.hibernate.cfg.SettingsFactory buildSettings 信息:命名 查询检查:启用 dic 05, 2012 7:48:40 PM org.hibernate.impl.SessionFactoryImpl 信息:构建 会话工厂 dic 2012 年 5 月 7:48:40 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance 信息:未将工厂绑定到 JNDI,未配置 JNDI 名称 线程“主”java.lang.IllegalArgumentException 中的异常: 未知实体:com.bitsperu.academia.entidad.Colegio at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:223) 在 com.bitsperu.academia.entidad.ColegioJpaController.create(ColegioJpaController.java:54) 在 com.bitsperu.academia.utilidades.Main.main(Main.java:32) Java 结果:1

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="academiaPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.bitsperu.academia.entidad.Colegio</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.connection.password" value="nbuser"/>
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/academia"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
    </properties>
  </persistence-unit>
</persistence>

【问题讨论】:

你的persistence.xml文件的内容是什么? 你在调用 SessionFactory.getCurrentSession() 吗?? 不,应该吗?请解释一下 【参考方案1】:

尝试在persist(T)之后调用flush(),在你的例子中:

   colegio.setAlumnoList(attachedAlumnoList);
   if (!em.contains(colegio)) 
        // persist object - add to entity manager
        em.persist(colegio);
        // flush em - save to DB
        em.flush();
    

【讨论】:

我可以列出但不能插入,你应该在maquisac.com/upao/2012-12-05下载我的项目,请检查,名称是学术界 您是否关闭了 EntityManager?

以上是关于未知实体 JPA Netbeans的主要内容,如果未能解决你的问题,请参考以下文章

获取 JPA 实体版本的通用方法

Spring Data JPA 原生查询结果实体

2JPA-Annotation

尝试多对一实体映射时出现未知列错误

使用eclipselink jpa的未知列错误

JPA 一个实体中的两个惰性集合 - 如何运行 JPA 查询以获取实体和只有一个集合