0

我目前正在使用 Eclipse Indigo,我希望在子包中自动生成我的元模型类,而不是将它们放在我的实体的同一个包中。

我已按照Eclipse Galileo 上的规范模型生成器的 JPA 用户指南中的说明进行操作,但它根本不适用于 Indigo。:(

有人在子包中使用静态元模型类吗?有没有办法在 Eclipse Indigo 上配置它?

4

1 回答 1

1

也许您不应该更改
我建议反对它的包,因为将这些放在子包(或任何其他包)中违反了当前的 JPA 2 规范:

• 对于包 p 中的每个托管类 X,创建包 p 中的元模型类 X_。[67]
...
[67] 我们希望在本规范的未来版本中提供不同包的选项。
...
本规范的实现不需要支持非规范元模型类的使用。使用非规范元模型类的应用程序将不可移植。

其他组织方式是常见的 JUnit 实践:不同源目录中的相同包。

但如果你必须这样做,这就是它的完成方式

以下至少适用于 Eclipse 版本:Indigo Service Release 1 20110916-0149 和 EclipseLink:eclipselink-2.3.0.v20110604-r9504。JAR 的名称因版本而异。

如果启用,则禁用生成到实体所在的同一包:

  1. 转到 Project Properties - JPA 并检查 Source Folder 的值是否为<None>

调整生成到另一个包:

  1. 属性 - 注释处理
    [x] 启用项目特定设置
    [x] 启用注释处理
    [x] 在编辑器中启用处理
    生成的源目录:src(或任何源文件所在的位置)
  2. 新处理器选项:
    key= eclipselink.canonicalmodel.subpackage
    value= sub | (所需的包名称)
  3. 更深一层的注释处理 | 工厂路径并选择添加外部 JAR 并添加以下 jar:
    eclipselink /jlib/jpajavax.persistence_2.0.3.v201010191057.jar eclipselink
    /jlib/jpaeclipselink-jpa-modelgen_2.3.0.v20110604-r9504.jar eclipselink
    /jlib/ eclipselink.jar
  4. 让 Eclipse 重建项目。
于 2011-10-03T07:21:11.663 回答