在 Eclipse Indigo 上对我的静态元模型类进行子打包

发布于 2024-12-07 20:39:40 字数 322 浏览 3 评论 0原文

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

我已按照JPA Canonical Model Generator 用户指南中的说明进行操作在 Eclipse Galileo 上,但它根本不适用于 Indigo。 :(

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

I'm currently using Eclipse Indigo and I'd like to have my meta-model classes to be automatically generated in a sub-package instead of having them in the same package of my entities.

I've followed the instructions in the JPA User Guide for Canonical Model Generator on Eclipse Galileo, but it's not working at all with Indigo. :(

Does anybody use the static meta-model classes in a sub-package? Is there any way to configure it on Eclipse Indigo?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

慵挽 2024-12-14 20:39:40

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

• 对于包 p 中的每个托管类 X,元模型类 X_ 在
包 p 已创建。[67]
...
[67] 我们预计该选项
未来版本中将提供不同的软件包
规格。
...
本规范的实现不是
支持使用非规范元模型类所需的。
使用非规范元模型类的应用程序将不会
便携式。

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

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

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

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

  1. 转到项目属性 - JPA 并检查源文件夹的值

调整生成到其他包:

  1. 属性 - 注释处理
    [x] 启用项目特定设置
    [x] 启用注释处理
    [x] 在编辑器中启用处理
    生成的源目录:src(或源所在的位置)
  2. 新处理器选项:
    key=eclipselink.canonicalmodel.subpackage
    值= | (所需的包名称)
  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 重建项目。

Maybe you should not change package
I would suggest against it, because having those in sub package (or any other) violates current JPA 2 specification:

• For each managed class X in package p, a metamodel class X_ in
package p is created.[67]
...
[67] We expect that the option of
different packages will be provided in a future release of this
specification.
...
Implementations of this specification are not
required to support the use of non-canonical metamodel classes.
Applications that use non-canonical metamodel classes will not be
portable.

Other way to organize is common JUnit practice: same package in different source directory.

But if you have to, this is how it is done

Following works at least with Eclipse version: Indigo Service Release 1 20110916-0149 and EclipseLink: eclipselink-2.3.0.v20110604-r9504. Names of the JARs can slightly vary from version to another.

If enabled, disable generating to the same package where entities are:

  1. Go to Project Properties - JPA and check that value of Source Folder
    is <None>

Adjusting generating to the other package:

  1. Properties - Annotation Processing
    [x] Enable project specific settings
    [x] Enable annotation processing
    [x] Enable processing in editor
    Generated source directory: src (or wherever sources live)
  2. New processor option:
    key=eclipselink.canonicalmodel.subpackage
    value=sub | (desired package name)
  3. Go one level deeper to the Annotation Processing | Factory Path and select Add External JARs and add following jars:
    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. Let Eclipse rebuild project.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文