首页 > 解决方案 > NotNavigableException 原因

问题描述

每当我运行我的休眠连接 java 代码时,我都会收到此异常 org.hibernate.metamodel.NotNavigableException: com.javaa2z.hibernate.Customer is not a navigable (managed-type or collection)

我已经编写了 hibernate.cfg.xml 代码和 Customer.hbm.xml。我用的是Mysql8.0

org.hibernate.metamodel.NotNavigableException:com.javaa2z.hibernate.Customer 在 org.hibernate.metamodel.spi.AbstractRuntimeModel.getEntityDescriptor(AbstractRuntimeModel.java:129) 中不是可导航的(托管类型或集合)。 internal.SessionImpl.getEntityDescriptor(SessionImpl.java:1492) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:126) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:190)在 org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175) 在 org.hibernate 的 org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:36)。event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:30) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:71) at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:682)在 org.hibernate.internal.SessionImpl.save(SessionImpl.java:674) 在 org.hibernate.internal.SessionImpl.save(SessionImpl.java:669) 在 com.javaa2z.hibernate.Lab1A.main(Lab1A.java:14 )hibernate.internal.SessionImpl.save(SessionImpl.java:669) 在 com.javaa2z.hibernate.Lab1A.main(Lab1A.java:14)hibernate.internal.SessionImpl.save(SessionImpl.java:669) 在 com.javaa2z.hibernate.Lab1A.main(Lab1A.java:14)

标签: hibernate-mapping

解决方案


我遇到了同样的问题,因为没有在数据源中设置模型包:

@Bean
    public LocalSessionFactoryBean sessionFactory() {
        System.out.println("Creating entity Manager");
        logger.info("DATASOURCE :"+dataSource());
        LocalSessionFactoryBean factoryBean=new LocalSessionFactoryBean();
        factoryBean.setDataSource(dataSource());
        factoryBean.setPackagesToScan(new String[]{"You model package will set here"});
        factoryBean.setHibernateProperties(additionalProperties());
        return factoryBean;
    }

推荐阅读