[英]How to fix NPE in hibernate config?
@Autowired Environment env - 始終為空。這是我的 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")
僅將它與 String 參數一起使用。
第三,你需要的不是 5.0...mysql-connector 不是 4.0...而是這個:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.