【发布时间】:2017-11-17 01:26:55
【问题描述】:
我在这里有一个一般性问题,因为我现在真的很沮丧和不确定。
我有:
- 工作 PHP REST API
- 丑陋的 MySQL 数据库
并想将其重构为:
- Spring Boot 微服务
- 使用 JPA/休眠
- MySQL 数据库
我在本地 fabric8 集群上运行了一个 Spring 引导服务。
现在我想访问 MySQL 数据库。
使用 Dali Eclipse 创建了 POJO / 实体(Hibernate 或 JPA 2.1 都尝试过)
试过简单的CRUDRepository.findAll()
问题就从这里开始了(之前有很多,但还可以)
-
生成的 POJO 和 DB 存在命名约定问题 通过配置解决:
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Eclipse 中的几个 JDBC 驱动程序和类版本问题必须使用下载的 jar 手动修复。
-
带有 crudRepo.findAll() 的无限循环导致递归 POJO 关系 由解决:
在每个
@OneToMany下设置一个@JsonManagedReference和@JsonBackReferenceunder EACH@ManyToOne
我知道事情会变得更复杂,因为我有数据库请求只需要一个表中的一些值,另一方面一些请求基于 几个表(连接) 我遇到了找到描述此类用例的正确文档的问题。 还是只需要为每个 UseCase 创建一个自己的 POJO??
现在我的问题是:
- 我有正确的方法还是有更好的建议?
- 我错过了哪些可以解释此类问题的文档?
自从我开始这个项目以来,事情往往不会按预期工作,如果我做对了,我会很挣扎。 尤其是 MySQL DB 访问 似乎与 Hibernate/Spring-boot 存在很大问题。
我之前和 JPA 一起工作过,觉得它很舒服,但现在它看起来太复杂了。
如果您能就此分享您的想法,我将不胜感激!
【问题讨论】:
-
JsonBackReference 是杰克逊注解,所以如果它解决递归问题,它们与 JPA 或 spring-boot 无关。您正在使用多种技术来做非常不同的事情 JSONJavaDB 并且必须拥有适合每条腿的模型、配置和 jar。您没有提出我们可以提供帮助的问题,因为我们不知道您采用的是什么方法,而且无论如何它都是基于意见的。有许多 JPA 演示和教程可供您查看并适应您的需求。
-
也许这正是我需要听到(阅读)的。有这么多部分一起工作,所以我失去了概述什么症状是由什么引起的......在我继续之前,我会花一些时间来获得更好的概述。谢谢你的小脑袋。
标签: mysql hibernate jpa spring-boot jackson