当前位置: 首页 > 知识库问答 >
问题:

正在获取组织。冬眠MappingException:未知实体。使用Spring框架

戚翰飞
2023-03-14

我刚刚开始在java spring框架中工作。我只是想用列id和名称填充一个简单的表。但我得到:

未知实体:组织。冬眠映射异常

我知道这是经常遇到的异常。但我无法解决这个问题。您可以在下面找到实体、dao和hibernate配置am。

HibernateConfig。Java语言

 @Getter @Setter 
@Configuration@ConfigurationProperties(prefix = "databaseConfiguration") 
public class HibernateConfig {
    @Value("${driverClass}")
    private String driverClass;

    @Value("${url}")
    private String url;

    @Value("username")
    private String username;

    @Value("password")
    private String password;

    @Value("${hibernateDialect}")
    private String hibernateDialect;

    @Value("${hbm2ddlAuto}")
    private String hbm2ddlAuto;

    private Integer minSize;

    private Integer maxSize;


    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driverClass);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
       return dataSource;
    }

    @Bean
    public Properties hibernateProperties() {
        Properties properties = new Properties();
        properties.put("hibernate.hbm2ddl.auto", hbm2ddlAuto);
        properties.put("hibernate.dialect", hibernateDialect);
        properties.put("hibernate.c3p0.min_size", minSize);
        properties.put("hibernate.c3p0.max_size", maxSize);
        return properties;
   }

    @Bean
    public LocalSessionFactoryBean sessionFactory(DataSource dataSource) {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setHibernateProperties(hibernateProperties());
       return sessionFactory;
}


    @Bean
    public ITestDao testDao() {
        ITestDao testDao = new TestDao();
       return testDao;
    }
} 

正在从中获取所有属性。yml文件。ITestDao是其中包含抽象add()方法的接口。

实体类

@Getter
@Setter
@Entity
@Table(name = "test")
public class Test {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false, unique = true)
    private Long id;

    @Column(name = "dump", nullable = false)
    private String dump;
}

Dao类

@Repository
@Transactional
@Getter
@Setter
public class TestDao implements ITestDao {

    @Autowired
    private LocalSessionFactoryBean sessionFactoryBean;


    public Test add(Test test) {
        try {
                sessionFactoryBean.getObject().getCurrentSession().getTransaction().begin();
            sessionFactoryBean.getObject().getCurrentSession().persist(test);

    } finally {
            sessionFactoryBean.getObject().getCurrentSession().getTransaction().commit();
    }
    return test;
    }

}

服务方法将调用此dao,并在其上方添加注释。但是在调用这个dao方法时,我得到了未知的实体:

组织。冬眠映射异常

共有2个答案

宗沛
2023-03-14

您可能缺少下面的批注。

@EntityScan("some.known.persistence")

@EntityScan仅标识特定持久性上下文应使用哪些类。

乌灿
2023-03-14

请尝试以下方法:

    @Bean
    public LocalSessionFactoryBean sessionFactory(DataSource dataSource) {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
         sessionFactory.setPackagesToScan(new String[] { "my.package.model" });// You need to provide to adapt : my.package.model
        sessionFactory.setHibernateProperties(hibernateProperties());
       return sessionFactory;
}

祝你好运

 类似资料:
  • 我在Hibernate中使用注释。我得到这个错误: 组织。冬眠MappingException:未知实体:xyz。豆在组织进行测试。冬眠实施。SessionFactoryImpl。位于org的getEntityPersister(SessionFactoryImpl.java:550)。冬眠事件def。DefaultLoadEventListener。org上的onLoad(DefaultLoad

  • 我需要你帮我把冬眠映射成一对多我不知道为什么这是错的 另一类: 映射 另一个映射: Hibernate配置 这就是错误: 如果有人能帮我,我非常感激,谢谢!

  • 我正在用JPA创建一个EJB应用程序。我创建了EJBBean,它在实体管理器中使用@PersistenceContext。我还提供了持久化中的设置。包含Hibernate信息的xml文件。我试图使用transaction type=JTA,并试图使用JNDI访问数据源。我还在服务器上提供了一些信息。Websphere Liberty的xml文件 但是,我收到了一条错误消息- javax。ejb。E

  • 初始数据。专业有很多科目。 专业JAVA 对于一个主题来说,专业不能为空。我希望它能以下一种方式工作:当我保存/更新/分离一个主题时,同样的操作必须应用于专业。当我删除一个主题时,专业不会发生任何变化。 主题JAVA 我写了一个集成测试。生成专业()和生成主题()这只是util方法。 你可以在这张图片上看到测试结果。 subjectService在此处引发了异常。保存(主题1); 原因:org。冬

  • 我试图在名为Person和Address的两个实体之间建立单向关系,同时保存Person(包含地址集合)获取组织。冬眠TransientObjectException:对象引用未保存的临时实例。 当我更改cascadeType=all时,子对象正在传播。但这里的问题是cascadeType=all Hibernate在删除所属实体时也会尝试删除子实体。我不希望发生这种情况,因为在很多关系中,子实体

  • 我有以下配置: 我有我的Geoname类在com.example.domain: 然而,在运行时,我会遇到以下异常: 原因:组织。冬眠AnnotationException:未为实体com指定标识符。实例领域组织的地理名称。冬眠cfg公司。继承状态。在org上确定了faultaccesstype(InheritanceState.java:277)。冬眠cfg公司。继承状态。位于org的getEl