gpt4 book ai didi

java - Spring 数据 JPA 存储库不保存到数据库

转载 作者:行者123 更新时间:2023-11-30 21:44:38 26 4
gpt4 key购买 nike

<分区>

我试图在不使用 @EnableJpaRepositories 注释和 spring Autowiring 的情况下初始化 spring-data 存储库。在我现有的应用程序中,我可以访问要用于数据库通信的 DataSource 对象。以下代码为 TravelAlertRepository 生成一个实现并读取数据库中的现有行。但是,每当我尝试更新这些更改时,这些更改都不会显示在数据库中。我也无法在数据库中创建新行。

interface TravelAlertRepository extends 
org.springframework.data.repository.CrudRepository<TravelAlertVO, Long>{}

class SpringDataRepositories {

private TravelAlertRepository travelAlertRepository;
private javax.persistence.EntityManager entityManager;

SpringDataRepositories() {

this.entityManager = createEntityManager();
RepositoryFactorySupport factory = new JpaRepositoryFactory(entityManager);
travelAlertRepository = factory.getRepository(TravelAlertRepository.class);
}

private static javax.persistence.EntityManager createEntityManager() {

LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setPersistenceProviderClass(HibernatePersistenceProvider.class);
em.setJpaProperties(hibProperties());
em.setPersistenceUnitName("persistentName");
em.setPackagesToScan(
TravelAlertVO.class.getPackage().getName()
);
em.afterPropertiesSet();
return em.getObject().createEntityManager();
}

private static Properties hibProperties() {

Properties properties = new Properties();
properties.put("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");
properties.put("hibernate.show_sql", true);
return properties;
}

public static DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();

dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUsername("mydb");
dataSource.setPassword("mydb");

return dataSource;
}
}

感谢任何帮助。

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