java 通过环境变量设置JPA列的默认值(Sping Boot )

ykejflvf  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(85)

我有一个实体类,我想在其中设置列的默认值。我试过这个:

@Column(name = "column", columnDefinition = "double")
@Value("#{new Double('${env.var:-0.25}')}")
@NonNull
private Double column;

现在,我们不能使用@Value在实体类中设置值。我看到一些stackoverflow的答案是这样的:
Setting default values for columns in JPA
其中,您在列定义中设置了一个默认值,但没有办法像@Value那样默认并注入env值。我能做些什么来实现这一目标吗?
谢谢

jtw3ybtb

jtw3ybtb1#

因为@Value在spring managed bean中工作,所以Declared only @Entity可能无法满足您的要求。
这样用怎么样?

@Component
class SomeConfig {
  @Value("${SomeVal}")
  public String val;
}

@Entity
class YourEntity {
  @Column(name = "column", columnDefinition = "double")
  @NonNull
  private Double column = SomeConfig.val;
}

虽然数据库的约束条件不会改变,但通过编程,可以通过外部设置来确定默认值!

相关问题