首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Javassist创建Hibernate实体

使用Javassist创建Hibernate实体
EN

Stack Overflow用户
提问于 2014-07-16 11:09:11
回答 1查看 333关注 0票数 0

我们的需求需要基于用户输入生成Pojos。因此,类是根据用户提供的输入在运行时创建的。我们一直在使用Javassist创建对象,并与其一起使用注释来创建所有必需的映射。例如,创建以下内容时没有问题,因为不涉及泛型:

代码语言:javascript
复制
    @ManyToOne(cascade = CascadeType.ALL)
public Address getUserAddress() {
    return this.userAddress;
}

当我们使用Javassist时,它会被创建得很好。然而,当我们试图为一个到多个映射创建注释时,Javassist不工作,因为它不支持泛型。

代码语言:javascript
复制
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
public Set<UserRecord> getUserRecords() {
    return this.userRecords;
}

这是不起作用的,因为我们需要将返回类型设置为" set“,这是无法用Javassist创建的。我还尝试使用set泛型方法,方法如下

代码语言:javascript
复制
ctfield.setGenericSignature(java.lang.String sig)

到目前为止,我还没有成功地生成一个具有泛型返回类型的类。是否有其他方法或其他解决办法可用于解决这一问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-25 07:15:43

CtMethod继承了CtBehavior#setGenericSignature()

按照CtClass javadoc获取示例代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24779232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档