Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 编译时动态注释参数_Java_Jpa - Fatal编程技术网

Java 编译时动态注释参数

Java 编译时动态注释参数,java,jpa,Java,Jpa,我知道您不能在运行时动态更改注释参数。我知道编译时的值,但不在注释类型的范围内。我也无法控制注释本身 我想将其用于JPA,因此我也将在示例中使用它: 我有一个基本程序定义一个实体a: @实体 @继承(strategy=JOINED)//默认策略 公共A类{} 现在我有了一个构建在该程序之上的风格,即它像库一样使用基本程序,但两者都是一起编译的。flavor扩展了A,应该能够确定其继承策略,即覆盖A类型的@inheritance的参数值 有没有一种方法可以在不影响字节码的情况下实现这一点?您不能

我知道您不能在运行时动态更改注释参数。我知道编译时的值,但不在注释类型的范围内。我也无法控制注释本身

我想将其用于JPA,因此我也将在示例中使用它:

我有一个基本程序定义一个实体
a

@实体
@继承(strategy=JOINED)//默认策略
公共A类{}
现在我有了一个构建在该程序之上的风格,即它像库一样使用基本程序,但两者都是一起编译的。flavor扩展了
A
,应该能够确定其继承策略,即覆盖
A
类型的
@inheritance
的参数值


有没有一种方法可以在不影响字节码的情况下实现这一点?

您不能在子类中“重写”继承。您可能可以在orm.xml中指定基类的继承。与Spring不同,我从未接触过JPA的xml配置,这可以很好地解决我的特定问题,谢谢您的提示!不过,我仍然对一种通用的方法感兴趣。另外,为了说明这一点,我不想“覆盖”子类中的注释,我知道它不是这样工作的。我知道,只需要在口味范围内做就行了。因此,在我需要更改根类的继承类型的风格中,这就是这个问题的全部要点……在运行时没有“正式”的方法来更改注释。然而,有一个问题显示了如何通过反射实现这一点:。但请记住,这是高度特定于JDK的,可能会因不同的环境或版本而中断。