在Hibernate实体中加载Spring配置

时间:2018-07-13 10:36:14

标签: spring hibernate spring-boot entity

我想配置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
    }

这可能吗?如果没有,是否有任何解决方法?

1 个答案:

答案 0 :(得分:0)

从您的代码中可以清楚地看到,您只是通过ValidationConfiguration定义了private ValidationConfiguration config;
但是您没有实例化对象。 因此,实例化new ValidationConfiguration()之类的对象,由于您尚未共享ValidationConfiguration的代码,因此我预测您的方法getMaxLength()不是静态的。如果问题仍然存在,请共享ValidationConfiguration代码。

如果那是一个bean,那么您可以简单地autowire而不创建新的实例化。