0

我花了很长时间才弄清楚如何让 JPQL 自动完成以在 Eclipse 中工作。我可以看到发生的唯一地方是将 <mapping-file> 添加到我的 persistence.xml 并在映射 .xml 文件中我可以定义一个 <named-query> 。然后,如果我添加“JPA 详细信息”视图并选择要编辑的查询,我会得到一个很小的 ​​4 行文本框,我必须在其中编辑我的查询。只有在这个小文本框中,我才能获得内容帮助。

A)有没有办法让这个文本框变大?(我的查询很复杂,我需要更多的行)

B) 还有其他更大的地方可以获得 JPQL 内容协助吗?

(我在 Indigo 3.7 和 Juno 4.2 中有同样的问题)

4

2 回答 2

2

内容助手也可以通过 @NamedQuery 注解获得。如果您将配置存储在 XML 文件中或在 Entity 类上使用注释没有区别,那么您可以利用后者。一旦您开始编辑 @NamedQuery 的“查询”元素,就可以使用与 JPA 详细信息/查询中相同的内容助手。它给你足够的空间;但是,由于它是在 Java 代码中定义的 String 常量,因此在查询拆分为多行的情况下,您必须处理额外的引号和连接。同时,您将能够在 JPA 详细信息视图中查看此查询。

至于 JPA Details 视图,我怀疑这个 Query 编辑框是否可配置,除非修改插件源并重新构建。

编辑回应评论(3),-这是一个“方向”:

  • JPA 详细信息视图以及在 org.eclipse.jpt.jpa.ui 插件中定义的面板/窗格
  • 命名查询编辑视图在类中定义,NamedQueryPropertyCompositeNamedQueryProperty2_0Composite相应地用于 JPA v1 和 JPA v2。
  • 将命名查询编辑器框调整为 4 行的代码片段如下所示:

    adjustMultiLineTextLayout(
        4,
        provider.getStyledText(),
        provider.getStyledText().getLineHeight()
    );
    

.. 其中 4 是行数。

可以在此处找到源代码::pserver:anonymous@dev.eclipse.org:/cvsroot/webtools(不确定它们针对的是哪个特定的 Eclipse 版本,但这绝对比 Indigo 附带的版本更新)。

于 2012-07-25T12:48:57.733 回答
2

我已经针对 Dali Eclipse 项目输入了一个错误,以使该文本区域更大并扩展它。一旦修复,就不需要破解。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=386416

作为对评论 (4) 的回应 - 请针对您在复杂查询中看到的特定验证错误输入针对 Dali 的错误。如果它们是符合规范的 JPQL 查询,我们肯定要修复它们。如果它们包含任何特定于休眠的内容,则休眠工具扩展将负责该验证。

于 2012-08-01T17:35:32.850 回答