Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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_Spring_Hibernate_Tomcat - Fatal编程技术网

Java 是否从属性文件传递注释参数?

Java 是否从属性文件传递注释参数?,java,spring,hibernate,tomcat,Java,Spring,Hibernate,Tomcat,我正在使用Hibernate Columntrasnformer注释在读取和写入列时传递执行某些SQL函数。但是,此SQL函数的一个参数是需要从属性文件传递的字符串 This works @Entity @Table(name = "my_table") public class myEntity { public static final String parameter = "TESTPARAMTER"; @ColumnTransformer(read = "MY_FUNCT

我正在使用Hibernate Columntrasnformer注释在读取和写入列时传递执行某些SQL函数。但是,此SQL函数的一个参数是需要从属性文件传递的字符串

This works
@Entity
@Table(name = "my_table")
public class myEntity {
    public static final String parameter = "TESTPARAMTER";
    @ColumnTransformer(read = "MY_FUNCTION_READ(my_column_name,"+ parameter "+)", write = "MY_FUNCTION_READ(my_column_name, "+paramter+)"
    @Column(name = "my_column_name")
    private String myColumnName;
}
我已经把这个变量移到了另一个类中,这也行得通

public class Constants{
    public static final String PARAMTER = "TESTPARAMTER";

}

 public class myEntity {
        @ColumnTransformer(read = "MY_FUNCTION_READ(my_column_name,"+ Constants.PARAMETER "+)", write = "MY_FUNCTION_READ(my_column_name, "+ Constants.PARAMETER +)"
        @Column(name = "my_column_name")
        private String myColumnName;
    }
但是,如果我将Constants类更改为此,它将不起作用

public class Constants{
    @Value("${parameter}")
    public static String PARAMTER;
}
我得到了错误 注释属性ColumnTransformer.read的值必须是常量表达式

有没有一种方法可以实现这一点,因为我对不同的实体有不同的参数。参数也会不断变化。因此,每当参数发生变化时,这将是一个巨大的代码维护

提前感谢。

“必须是一个常量表达式”表示“必须在编译时完全知道”。这意味着您试图实现的方法将不起作用,因为在编译时无法知道属性文件中的值。