当前位置: 首页 > 知识库问答 >
问题:

Spring Boot JPA mysql…错误的方法?

羊煜
2023-03-14

我有一个一般性的问题,因为我现在真的很沮丧和不确定。

我有:

  • 工作PHP REST API
  • 丑陋的MySQL数据库

并希望将其重构为:

  • Spring引导微服务
  • 使用JPA/Hibernate
  • MySQL数据库

我在本地fabric8集群上运行了一个Spring Boot服务。

现在我想访问MySQL数据库。

>

  • 使用Dali Eclipse创建POJO/实体(Hibernate或JPA 2.1都尝试了)

    尝试简单CRUDRepository.find所有()

    这里问题开始了(嗯,以前有很多,但没关系)

    >

  • 我遇到了一个命名约定问题,生成的POJO和DB由config解决:

    spring.jpa.hibernate.naming.implicit-策略=org.hibernate.boot.model.naming.隐含Namingstrat,LegacyJpaImplspring.jpa.hibernate.naming.physical-策略=org.hibernate.boot.model.naming.物理命名战略标准

    Eclipse中的几个JDBC驱动程序和类版本问题,必须用下载的jar手动修复。

    无限循环与crudRepo.find所有()导致递归POJO关系解决:

    在EACH@OneToMore下设置@JsonManaged参考,在EACH@ManyToOne下设置@JsonBack参考

    我知道事情会变得更加复杂,因为我的数据库请求只需要表中的一些值,而另一方面则需要一些基于多个表(连接)的请求,而且我无法找到描述此类用例的正确文档。还是只需要为每个用例创建一个自己的POJO?

    现在我的问题是:

    • 我有正确的方法还是有更好的建议?
    • 我错过了哪些可以解释此类问题的文档?

    自从我开始这个项目以来,事情往往不会按预期工作,所以我很纠结我是否做得对。尤其是MySQL DB访问在HiberNate/Spring Boot下似乎很有问题。

    我以前用过JPA,觉得它很舒服,但是现在看起来太不必要的复杂了。

    如果你能分享你的想法,我将不胜感激!

  • 共有2个答案

    金飞
    2023-03-14
    1. 如前所述,如果使用注释或xml正确映射列名,则可以跳过命名约定部分
    2. 我建议您开始对hql和命名查询使用hibernate。如果最初存在存储过程,请再次使用命名查询
    3. 如果您使用微服务方式,Spring Boot可能非常方便,但在此之前您需要实现像maven这样的绑定工具。只是更改pom中的最新版本号。xml将让最新的jar自动(下载)在类路径上。最初,这个过程可能看起来难以捉摸且耗时,但它将帮助您的团队在未来有很大的灵活性
    段干跃
    2023-03-14

    当然,Spring(Boot)是巨大的,在开始时它可能会让人不知所措 - 特别是如果你添加Web和持久性层 - 但是如果你知道从哪里开始,它变得非常容易实现几乎任何需求。

    您对“生成的POJO”究竟是什么意思?通常,您手动编写Java实体,并使用注释(或XML)定义到(已经存在的)html" target="_blank">数据库模式的映射,例如,一个简单的Hibernate映射可能如下所示。所以,如果你这样做,就不会有命名问题了。

    “用下载的jars手工修复”的解决方案听起来很奇怪,最好使用maven或gradle这样的依赖管理工具。E、 使用maven,如果某些内容不符合您的需求,您还可以包括/排除某些依赖项。Spring确实支持maven和gradle开箱即用。

    这里可以找到很多JSON / Jackson教程,baeldung站点通常是寻找spring教程的好地方。

    要管理诸如“仅来自一个表的一些值”或“多个表(连接)”之类的东西,Spring Data JPA,尤其是Spring Data JPA Proj

     类似资料:
    • 我有Laravel 5.4和VueJs应用程序。当我在Localhost中运行它时,它已经工作了,但是现在。我把主机放在一台服务器上,它会给出错误信息 这是我在VueJS的POST请求 这是api.php

    • 问题内容: 我正在创建一个词解析类,并在运行此命令时始终收到“ < main .Word_Parser实例位于0x1037dd3b0>的绑定方法Word_Parser.sort_word_list ”的错误: 问题答案: 这里没有错误。您正在打印一个函数,这就是函数的外观。 要实际 调用 该函数,必须在其后放置括号。您已经在上面完成了。如果要打印调用函数的结果,只需让函数返回值,然后将打印内容放在

    • 我试图在Android中做一个简单的计算器。

    • 我几乎完成了一个基本的刽子手游戏,但我在课堂上遇到了“makeGuess”方法的困难。我试图测试用户输入(他们的一个字符猜测)与秘密单词,并更新伪装的单词,如果他们的猜测是正确的或不正确的。任何正确方向的建议或指点都将不胜感激。每次运行时都会出现以下错误: 这是刽子手课: } 这是我的演示课 }

    • 本文向大家介绍ioncube_loader_win_5.2.dll的错误解决方法,包括了ioncube_loader_win_5.2.dll的错误解决方法的使用技巧和注意事项,需要的朋友参考一下 我们做项目的时候遇到了出现下边这些错误 requires the ionCube PHP Loader ioncube_loader_win_5.2.dll to be installed by the

    • 我在尝试使用请求调度程序从一个servlet中获取另一个servlet中的sum元素时遇到了一个问题。 但是S2.java中的getAtcm()方法在访问Request_D的总和时出错ispatcher_example.java. 我也尝试过使用HttpSession,但也出现了相同的错误 类型异常报告消息无法调用“ilter.java:53Integer.intValue()”,因为“javax