Java 保存时如何使用实体中的配置文件设置值

Java 保存时如何使用实体中的配置文件设置值,java,spring,Java,Spring,我正在使用springmvc+hibernate开发一个网站,问题是:我需要为entity的列设置一个值,这个值可以在我发布这个网站时设置,所以我将这个值放到application.properties中,但是,在保存此实体时,如何将其用作实体的默认值。假设与列对应的字段名为myColumn,类型为String。您的字段是实体类myEntity的一部分。在这种情况下,您可以简单地执行以下操作: @Entity public class myEntity{ private String my

我正在使用springmvc+hibernate开发一个网站,问题是:我需要为entity的列设置一个值,这个值可以在我发布这个网站时设置,所以我将这个值放到application.properties中,但是,在保存此实体时,如何将其用作实体的默认值。

假设与列对应的字段名为
myColumn
,类型为
String
。您的字段是实体类myEntity的一部分。在这种情况下,您可以简单地执行以下操作:

@Entity
public class myEntity{

  private String myColumn = "my_default_value";
  //other fields..
}
如果您没有使用setter显式设置,这将自动将列
myColumn
设置为“我的默认值”

编辑:我假设您从
@Entity
注释的类生成表,否则这将不起作用

编辑2:下面介绍了设置默认值的所有方法:


还请注意:如果字段是数字基元类型,则在保存到数据库时,将始终为其指定默认值。默认情况下,整数字段如
int、long、double
等将分配
0
。此外,默认情况下,
boolean
将被指定为
false
。如果您不想这样做,请使用
包装类
。因此,
Integer
代替int,
Long
代替Long<代码>布尔值而不是布尔值。如果将
包装类
用作数据类型,则默认值将始终为
NULL

假设与列对应的字段名为
myColumn
,类型为
String
。您的字段是实体类myEntity的一部分。在这种情况下,您可以简单地执行以下操作:

@Entity
public class myEntity{

  private String myColumn = "my_default_value";
  //other fields..
}
如果您没有使用setter显式设置,这将自动将列
myColumn
设置为“我的默认值”

编辑:我假设您从
@Entity
注释的类生成表,否则这将不起作用

编辑2:下面介绍了设置默认值的所有方法:


还请注意:如果字段是数字基元类型,则在保存到数据库时,将始终为其指定默认值。默认情况下,整数字段如
int、long、double
等将分配
0
。此外,默认情况下,
boolean
将被指定为
false
。如果您不想这样做,请使用
包装类
。因此,
Integer
代替int,
Long
代替Long<代码>布尔值而不是布尔值。如果将
包装类
用作数据类型,默认值将始终为
NULL

您不能在POJO中使用@value注释(休眠或不休眠)好的,谢谢提醒,我不知道。然后我将删除该部分。例如,可以将值注入存储库,然后从存储库注入实体。如果实体是从另一个上下文中使用的,仍然不是很干净。这对我不起作用,因为我将在许多实体中使用此值,所以我需要将此值放在application.properties中,我想将此值设置为entities,有什么想法吗?thanks@Tong正如Alexander Petrov所说,您可以将值注入对应于实体类的
JpaRepository
。接下来你要做的就是重写
save()
方法。你不能在POJO中使用@Value注释(hibernate或no hibernate)好的,谢谢提醒,我不知道。然后我将删除该部分。例如,可以将值注入存储库,然后从存储库注入实体。如果实体是从另一个上下文中使用的,仍然不是很干净。这对我不起作用,因为我将在许多实体中使用此值,所以我需要将此值放在application.properties中,我想将此值设置为entities,有什么想法吗?thanks@Tong正如Alexander Petrov所说,您可以将值注入对应于实体类的
JpaRepository
。接下来要做的就是重写
save()
方法。