gpt4 book ai didi

java - 使用 Spring Data JPA 提交事务

转载 作者:太空宇宙 更新时间:2023-11-04 13:11:41 25 4
gpt4 key购买 nike

我从这里下载了一个 Spring Data JPA 示例 Accessing Data with JPA它按预期工作。

@SpringBootApplication
public class Application {

private static final Logger log = LoggerFactory.getLogger(Application.class);

public static void main(String[] args) {
SpringApplication.run(Application.class);
}

@Bean
public CommandLineRunner demo(CustomerRepository repository) {
return (args) -> {
// save a couple of customers
repository.save(new Customer("Jack", "Bauer"));
repository.save(new Customer("Chloe", "O'Brian"));
repository.save(new Customer("Kim", "Bauer"));
repository.save(new Customer("David", "Palmer"));
repository.save(new Customer("Michelle", "Dessler"));

// fetch all customers
log.info("Customers found with findAll():");
log.info("-------------------------------");
for (Customer customer : repository.findAll()) {
log.info(customer.toString());
}
log.info("");

// fetch an individual customer by ID
Customer customer = repository.findOne(1L);
log.info("Customer found with findOne(1L):");
log.info("--------------------------------");
log.info(customer.toString());
log.info("");

// fetch customers by last name
log.info("Customer found with findByLastName('Bauer'):");
log.info("--------------------------------------------");
for (Customer bauer : repository.findByLastName("Bauer")) {
log.info(bauer.toString());
}
log.info("");
};
}

}

然后我尝试从内存数据库更改为真实数据库。为此,我在当前目录中添加了一个 application.properties 文件,其中包含一行:

spring.datasource.url=jdbc:h2:C:/users/semaphor/H2Database;DB_CLOSE_ON_EXIT=FALSE

现在,当我运行应用程序时,我可以看到在预期的目录中创建了数据库文件。

现在我想看到客户存储在数据库中,并且当我重新启动应用程序时仍然存在。因此,我删除了一些在开始时将客户保存在数据库中的行,但随后他们不再使用 findAll() 进行监听。

我想该事务尚未提交,但我不知道如何执行此操作。简单地将注释 @EnableTranscationManagement 添加到 Application 类并将 @Transactional 添加到 demo() 方法并不是解决方案。

我必须添加什么才能提交事务(如果这确实是问题所在)?

最佳答案

请参阅问题下方 M. Deinum 的评论。

添加

spring.jpa.hibernate.ddl-auto=update

application.properties 就是解决方案。

关于java - 使用 Spring Data JPA 提交事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33891157/

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