Я использую аннотацию 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 должно быть константным выражением
Есть ли способ, которого можно достичь, как у меня разные параметры для разных сущностей. Также параметры будут продолжать меняться. Так что каждый раз при изменении параметра будет требоваться огромная поддержка кода.
Заранее спасибо.