Java 在Hibernate映射中:如何设置默认值?
在我的项目中,我想设置我在x.hbm.xml文件中使用的三列的默认值:Java 在Hibernate映射中:如何设置默认值?,java,hibernate,hibernate-mapping,Java,Hibernate,Hibernate Mapping,在我的项目中,我想设置我在x.hbm.xml文件中使用的三列的默认值: 如果用户未提供所有三个值,则仅将“第一个”(职业)设置为默认值“其他人不”。。或未提供多个字段,则只有一列获取默认值,而其他列则不获取 我试着用注解 @Column(name = "colName", insertable=false, updatable = false, nullable = false, columnDefinition = "varchar(255) default '14-AP
如果用户未提供所有三个值,则仅将“第一个”(职业)设置为默认值“其他人不”。。或未提供多个字段,则只有一列获取默认值,而其他列则不获取
我试着用注解
@Column(name = "colName", insertable=false, updatable = false, nullable = false,
columnDefinition = "varchar(255) default '14-APR-1981'")
或者您可以使用@PrePersist
注释
@PrePersist
public void prePersist() {
if(myProperty == null) //We set default value in case if the value is not set yet.
myProperty = "Default value";
}
这并不是设置您要求的默认值,而是在一个或多个字段为空时,使用字符串“not Provided”设置一个字段。是这样吗 最容易理解的方法是修改构造函数和setter,以便手动对其进行过滤,如下所示:
public class YourTable {
private String occupation;
private String address;
private String contact;
public YourTable (){
checkNull();
}
//your geter setter here, and each setter must call checkNull() method after setting it's value
private void checkNull(){
if(occupation==null){
occupation="Not Provided";
return;
}
if(address==null){
address="Not Provided";
return;
}
if(contact==null){
contact="Not Provided";
return;
}
}
}
在servlet内部,我添加了这段代码来检查用户是否未提供任何值,然后将其设置为未提供,然后插入值
if (occupation.equals("")) {
occupation = "Not Provided";
}
if (address.equals("")) {
address = "Not Provided";
}
if (contact.equals("")) {
contact = "Not Provided";
}
我不知道hibernate中的注释,所以请你告诉我应该把代码放在哪里好吗?这是非常古老的代码,你可能已经知道了,但是你把它放在了实体类中。
if (occupation.equals("")) {
occupation = "Not Provided";
}
if (address.equals("")) {
address = "Not Provided";
}
if (contact.equals("")) {
contact = "Not Provided";
}