gpt4 book ai didi

java - 使用 Spring 框架获取 org.hibernate.MappingException : Unknown entity.

转载 作者:行者123 更新时间:2023-12-02 02:55:15 24 4
gpt4 key购买 nike

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

Unknown entity: org.hibernate.MappingException

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

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 是一个接口(interface),里面有抽象的 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;
}

道类

@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,并在其上方注释 @Transactional。但是在调用这个 add() dao 方法时,我得到了未知实体:

org.hibernate.MappingException

最佳答案

试试这个方法:

    @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;
}

祝你好运

关于java - 使用 Spring 框架获取 org.hibernate.MappingException : Unknown entity.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43192524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com