我想配置Hibernate以设置VARCHAR字段的最大长度。此最大长度在配置文件中定义,并且此配置文件由类ValidationConfiguration加载。
这是我的实体:
@Entity
public class MyEntity{
@Autowired /*I know this is bad practice,
I just want to let readers know that this object is instantiated.*/
private ValidationConfiguration config;
@Column(length = config.getMaxLength()) /*This gives a "java: element value
must be a constant expression"*/
String description;
//Get and set
}
这可能吗?如果没有,是否有任何解决方法?
答案 0 :(得分:0)
从您的代码中可以清楚地看到,您只是通过ValidationConfiguration
定义了private ValidationConfiguration config;
但是您没有实例化对象。
因此,实例化new ValidationConfiguration()
之类的对象,由于您尚未共享ValidationConfiguration
的代码,因此我预测您的方法getMaxLength()
不是静态的。如果问题仍然存在,请共享ValidationConfiguration代码。
如果那是一个bean,那么您可以简单地autowire
而不创建新的实例化。