我花了很长时间才弄清楚如何让JPQL自动完成在eclipse中工作。 我能看到的唯一地方是添加一个< mapping-file> 在我的persistance.xml和映射.xml文件中,我可以定义一个< named-query> 。然后,如果我添加“JPA详细信息”视图并选择我要编辑的查询,我会得到一个很小的4行文本框 我必须编辑我的查询。只有在这个小文本框中才能获得内容帮助。
A)有没有办法破解这个文本框更大? (我的查询非常复杂,我需要更多行)
B)还有其他更大的地方可以获得JPQL内容吗?
(我在Indigo 3.7和Juno 4.2中有同样的问题)
答案 0 :(得分:2)
内容助手也可以通过@NamedQuery注释获得。如果您在XML文件中存储配置或在Entity类上使用注释没有区别,那么您可以利用后者。一旦开始编辑@NamedQuery的'query'元素,就可以使用与JPA Details / Queries中相同的内容助手。它给你足够的空间;但是,由于它是Java代码中定义的String常量,因此在查询拆分为多行时,您必须处理额外的引号和连接。同时,您可以在JPA详细信息视图中查看此查询。
对于JPA详细信息视图,我怀疑此查询编辑框是否可配置,除非修改插件源和重建。
编辑在回应评论(3)时, - 这是'方向':
NamedQueryPropertyComposite
和NamedQueryProperty2_0Composite
中为JPA v1和JPA v2定义。将命名查询编辑器框调整为4行的代码片段,如下所示:
adjustMultiLineTextLayout(
4,
provider.getStyledText(),
provider.getStyledText().getLineHeight()
);
..其中4是行数。
源代码可以在这里找到:pserver:anonymous@dev.eclipse.org:/ cvsroot / webtools(不确定它们针对哪个特定的Eclipse版本,但这肯定比Indigo的新版本更新)。