休眠弹簧启动
问题描述:
我想创建一个演示,但我没有得到如何实现, 可以任何身体帮助我配置它。休眠弹簧启动
我正在使用弹簧引导,并休眠。
我有这样的要求,首先我会通过表格获取数据库登录信息, 然后我将它保存到任何文件或任何其他来源。
现在我已经登录了数据库的详细信息, 现在我将允许hibernate连接我的数据库并创建表,并且其他查询将被执行。
但我面临着Hibernate的问题,如 项目开始就说明我的错误
产生的原因:java.sql.SQLException中:拒绝访问用户“根” @“localhost”的(使用密码:YES )
因为当项目开始时它会加载hibernate来创建表和结构。
但我想通过表单从用户获取数据库登录细节后执行此任务。
意味着我希望项目应该在没有数据库登录细节的情况下启动,并且休眠不会引发任何错误。
我想要解决这个问题。
答
我不认为可以在应用程序启动后配置数据库连接。但是我看到了两种可能的解决方案:
- 首先,您需要对DataSource和EntityManager bean进行延迟初始化。所以你需要在手工模式下配置它们并用@Lazy对它们进行注释,并在你接收到db的登录名和密码后调用它们。但是仍然会有一个问题,就像你可以在应用程序执行期间连接到第二个db一样。所以,这种方式有效,但不推荐。
- 第二种选择是不使用Hibernate,而是使用纯JDBC连接。这不能限制你的连接选项,给你一些自由,这就是为什么我强烈推荐这种方式。
答
我想你想要的是多租户?我有这个没有更深的体会,但也许这
https://dzone.com/articles/spring-boot-hibernate-multitenancy-implementation
会帮助你....
什么是你的分贝的用户名和密码? – y2k
我认为你正在用这种方法让自己变得很难。我可以问一下你不想在应用程序属性中设置凭据的原因吗?你正在对付这个框架。也许这不应该与春天实施? –
干草y2k!我开始时没有用户名和密码,它将由用户设置。 –