Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring JPA中的方法名称太长_Java_Spring_Jpa - Fatal编程技术网

Java Spring JPA中的方法名称太长

Java Spring JPA中的方法名称太长,java,spring,jpa,Java,Spring,Jpa,我使用的是Spring数据JPA。我使用的是规范化数据库,这意味着,为了获得我想要的全部细节,我必须连接许多表。正如您所知,JPA基于查询生成方法名。但是,由于多个联接,我的方法名变得很长。有时,它超过250个字符。 我正在寻找带有JPA方法的@query注释,而不是自动生成的JPA方法名称。 我想知道如果我使用@query注释会对性能产生什么影响? 另外,请考虑性能,提出解决我的长方法名问题的任何备选方案。每当您使用Spring数据编写查询时(即列出findAllByName(字符串名称)),

我使用的是Spring数据JPA。我使用的是规范化数据库,这意味着,为了获得我想要的全部细节,我必须连接许多表。正如您所知,JPA基于查询生成方法名。但是,由于多个联接,我的方法名变得很长。有时,它超过250个字符。 我正在寻找带有JPA方法的@query注释,而不是自动生成的JPA方法名称。 我想知道如果我使用@query注释会对性能产生什么影响?
另外,请考虑性能,提出解决我的长方法名问题的任何备选方案。

每当您使用Spring数据编写查询时(即
列出findAllByName(字符串名称)
),Spring数据实际上会以与使用
@query
注释编写查询相同的方式生成您的查询。因此,从技术上讲,如果在
@Query
注释中以
HQL
JPQL
的形式编写查询,启动时间会更快。当然,最有效的方法是使用本机查询,但在游戏的后期,这可能是一个麻烦。

每当您使用Spring数据编写查询时(即
列出findAllByName(字符串名称)
),Spring数据实际上会以与使用
@query
注释编写查询相同的方式生成查询。因此,从技术上讲,如果在
@Query
注释中以
HQL
JPQL
的形式编写查询,启动时间会更快。当然,最有效的方法是使用本机查询,但在游戏后期可能会让人头疼。

我不确定性能,但查询注释是正确的方法与实际运行查询相比,解析查询所花费的时间最少,因此性能不是您需要关心的问题。确保数据库具有正确的索引以实现良好的访问计划更为重要。我不确定性能,但查询注释是正确的方式与实际运行查询相比,解析查询所花费的时间最少,因此性能不是您需要关心的问题。确保数据库有一个好的访问计划的正确索引是非常重要的。我可以知道为什么在游戏后期会很痛苦吗?你能和我分享一些例子或经验让我理解吗?假设你想从一个版本的Postgres迁移到另一个版本。在这种情况下,您必须手动调整所有查询。如果您
JPQL
/
HQL
您的查询是根据您使用的驱动程序版本生成的。如果你从MySQL迁移到PostgreSQL或Oracle,情况会更糟。我可以知道为什么在游戏后期会很痛苦吗?你能和我分享一些例子或经验让我理解吗?假设你想从一个版本的Postgres迁移到另一个版本。在这种情况下,您必须手动调整所有查询。如果您
JPQL
/
HQL
您的查询是根据您使用的驱动程序版本生成的。如果从MySQL迁移到PostgreSQL或Oracle,情况会更糟。