已经存在于类顶部的注释正在被移除,而我使用Javassist添加的任何内容都在添加,但不会产生任何效果。
假设
@Entity
class Master
{
//variables
//getters and setters
} 我需要的是添加额外的注解@Table(name="Master",schema="Master_Database"),通过Javassist动态添加到上面的“Master”类。
我面对的是@Entity被移除,@Table被成功添加。这会导致失去eclipseLink自动生成实体类的功能。请帮帮我
发布于 2015-01-16 15:30:04
它应该像这样简单:
ctClass.getClassFile().addAttribute(attributeInfo);这不应该删除现有的注解。为了进一步帮助您,我们需要知道您是如何添加注释的。
但是,您是否绑定了Javassist?看看Byte Buddy (我是作者),它使添加注释成为一项相当简单的练习:
TypePool pool = TypePool.Default.ofClassPath();
TypeDescription type = pool.describe("name.of.class");
Class<?> enhanced = new ByteBuddy()
.redefine(type, ClassFileLocator.ForClassFile.ofClassPath())
.annotation(new Table() {
...
})
.make()
.load(ClassLoader.getSystemClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
.getLoaded();https://stackoverflow.com/questions/27941382
复制相似问题