java - 如何在没有完全限定名称的情况下在另一个生成的类中定义 java codeModel 生成的类

标签 java hibernate sun-codemodel

我正在使用 java codeModel 生成 hibernate 实体类。

在表具有复合键的地方,我正在生成一个 @Embeddable 类,然后我需要在我的实体类中定义一个字段。

目前这个复合键类被定义为完全限定名称,在我的实体类中没有 java import 语句:例如

private com.aaa.bbb.CompoundKey compoundKey;

我如何告诉 codeModel 不要完全限定我的 CompoundKey 字段?例如

import com.aaa.bbb.CompoundKey;

private CompoundKey compoundKey;

我这样创建我的实体类

JCodeModel codeModel = new JCodeModel();
JDefinedClass entityClass = codeModel._class("com.aaa.bbb.EntityClassName");

我这样创建复合键类

    JDefinedClass compoundKeyClass = codeModel._class("com.aaa.bbb.CompoundKeyClassName");

我像这样在实体类中创建 compoundKey 字段

JFieldVar field = entityClass.field(JMod.PRIVATE, compoundKeyClass, "compoundKey");

最佳答案

我已经找到了这个问题的原因

当生成的复合键类名以实体类名开头时,codeModel 完全限定实体字段声明。

例如当实体和复合键类命名如下时,我看到了我的问题中提到的问题

ENTITY CLASS NAME               com.aaa.bbb.ENTITY
COMPOUND KEY CLASS NAME         com.aaa.bbb.ENTITYKEY

但是,当复合键类名称不以实体类名称开头时,codeModel 可以正常工作

ENTITY CLASS NAME               com.aaa.bbb.ENTITY
COMPOUND KEY CLASS NAME         com.aaa.bbb.KEYENTITY

关于java - 如何在没有完全限定名称的情况下在另一个生成的类中定义 java codeModel 生成的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25263255/

相关文章:

java - 火力地堡安卓 : Display data randomly

Java源代码生成: Eclipse JDT AST vs CodeModel

java - 如何在注释中生成/声明注释字段?

java - 根据城市、 zip 或街道名称获取经纬度

java - 如何从 Main.java 文件对齐 Javafx GridPane 中的矩形?

java - 单击打开 Android 中的特定文件夹

java - 在 Spring JSP 页面中使用集合时出现 Hibernate LazyInitializationException

mysql - 如何在 HQL 中使用 mysql null 安全相等运算符 <=>?

java - 如何使用 JPA 锁定数据库行

java - 如何获取CodeModel中的Assert JClass?