在Eclipse Indigo上包装我的静态元模型类

时间:2011-10-03 04:34:23

标签: eclipse jpa-2.0 eclipselink eclipse-indigo annotation-processing

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

我已按照Eclipse Galileo上的JPA User Guide for Canonical Model Generator中的说明进行操作,但它与Indigo完全不兼容。 :(

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

1 个答案:

答案 0 :(得分:1)

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

  

•对于包p中的每个托管类X,一个元模型类X_ in   包p被创建。[67]
  ...
  [67]我们期望选择   将来的版本中将提供不同的软件包   规范。
  ...
  本规范的实现不是   需要支持使用非规范元模型类。   使用非规范元模型类的应用程序将不会   便携式的。

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

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

以下至少使用Eclipse版本:Indigo Service Release 1 20110916-0149和EclipseLink:eclipselink-2.3.0.v20110604-r9504。 JAR的名称可能因版本而略有不同。

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

  1. 转到项目属性 - JPA并检查源文件夹的值 是<None>
  2. 调整生成到其他包:

    1. 属性 - 注释处理
      [x]启用项目特定设置
      [x]启用注释处理
      [x]在编辑器中启用处理
      生成的源目录:src(或源存储的任何地方)
    2. 新处理器选项:
      键= eclipselink.canonicalmodel.subpackage
          value = sub | (所需的包名)
    3. 更深入到注释处理|工厂路径并选择添加外部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重建项目。