Java 在IntelliJ Idea(JPA)中,字符串是否优于StringBuilder

Java 在IntelliJ Idea(JPA)中,字符串是否优于StringBuilder,java,intellij-idea,Java,Intellij Idea,我正在尝试将这个想法作为我的新IDE(到目前为止使用的是Eclipse),所以对于一个新手问题,我很抱歉 我刚刚发现,当我的JPA查询被写成字符串时 String query = "Select p" + " from Person p "; Idea正在执行高亮显示导航(当在Person上按CTRL键时),而对于使用StringBuilder的基本相同操作,它失败了 StringBuilder query = new StringBuilder(); query.appe

我正在尝试将这个想法作为我的新IDE(到目前为止使用的是Eclipse),所以对于一个新手问题,我很抱歉

我刚刚发现,当我的JPA查询被写成字符串时

String query = 
    "Select p" +
    "  from Person p ";
Idea正在执行高亮显示导航(当在Person上按CTRL键时),而对于使用StringBuilder的基本相同操作,它失败了

StringBuilder query = new StringBuilder();
query.append("Select p");
query.append("  from Person p ");
所以我的问题是,我是否能用StringBuilder实现同样的效果

我对StringBuilder的动机主要是代码格式化,因为在使用字符串的情况下,如果我的团队中有人在Eclipse中触发代码格式化,它很可能会被更改为一行。。。(我在Idea中没有代码格式方面的经验,我的意思是我不知道应该期待什么,而我非常清楚应该从Eclipse中期待什么)

公平地说,Eclipse没有做这些高级特性中的任何一个(转向Idea的原因/动机之一).

编辑:还有

// @formatter:off
  ... code ...
// @formatter:on
然而,据我所知,这只对想法有效


建议,有点超出了这个问题的范围。
使用属性文件(或任何文档类型)包含SQL语句。将它们外部化

e、 g:

从长远来看,这将非常容易维护。
IDEA将为SQL和JPQL提供语言注入


StringBuilder是否优于字符串连接取决于用例,而不是您使用的IDE StringBuilder用例中是否有激活的注入语言/引用?如果没有,请添加一个,并更新您的帖子,以表明它是否有帮助。从语言的角度来看,这是一个挑剔的问题,因为字符串文字的串联无论如何都是在编译时完成的。@Stultuske我相信我在Idea中清楚地描述了使用字符串和StringBuilder的区别。我提供的示例中的功能完全相同…@Betlista使用
+
将长字符串拆分为多行是非常好的。我总是这样做。我的观点是,使用StringBuilder会更慢,更难阅读。@Betlista当我在JTOpen for IBMi上构建框架时,我必须在主机上发出的每个命令都是使用StringBuilder构建的。再也没有这样做过。我意识到它只是在我尝试的端井处一团糟,结果非常类似于第一行的
StringBuilder
-warning“,”或from expected“,以及导航到不在属性文件中工作的人,就像在
es上没有完成一样。
@Betlista要完成,您需要更好地配置数据源。但我经常使用它,效果很好。我的经验主要是纯SQL,但是BTW,您是否注入JPA QL?@ BETLISTA,或者您可以考虑使用“格式化程序”标签,如上所述。
my-statement=\
   select field1, field2, field3 \ 
   from mytable \
   where field4 = '...' and \
         field5 = '...'