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