gpt4 book ai didi

java - 如何修复 hibernate 配置中的 NPE?

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

@Autowired 环境环境 - 始终为 null。这是我的 HibernateConf.java:

@Configuration
@EnableTransactionManagement
@PropertySource({ "classpath:hibernate.properties" })
public class HibernateConf{

@Autowired
private Environment env;

@Bean
public LocalSessionFactoryBean sessionFactory() {
final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan(new String[]{"Enteties"});
sessionFactory.setHibernateProperties(hibernateProperties());

return sessionFactory;
}

@Bean
public DataSource dataSource() {
final BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("com.mysql.cj.jdbc.Driver")));
dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc:mysql://localhost:3306/tutorialdb?createDatabaseIfNotExist=true")));
dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("root")));
dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("9339")));
return dataSource;
}

@Bean
public PlatformTransactionManager hibernateTransactionManager() {
final HibernateTransactionManager transactionManager = new HibernateTransactionManager();
transactionManager.setSessionFactory(sessionFactory().getObject());
return transactionManager;
}

private final Properties hibernateProperties() {
final Properties hibernateProperties = new Properties();
hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("create-drop"));
hibernateProperties.setProperty("hibernate.dialect", env.getProperty("org.hibernate.dialect.MySQL5Dialect"));

return hibernateProperties;
}
}

所以主要问题是这个 @Autowired private Environment env; 总是 NPE 但我不知道为什么,因为这个配置类的每个示例都与我的相同。我该如何修复它?

最佳答案

(代表问题作者发布,将其从问题移动到答案空间)

我找到了这个问题的解决方案。首先,您需要删除 @Autowired private Environment env; ,第二个 dataSource.setPassword("9339") 仅将其与字符串参数一起使用。

第三,你需要的不是 5.0...mysql-connector 不是 4.0...而是这个:

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>

关于java - 如何修复 hibernate 配置中的 NPE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57852213/

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