Java 在Hibernate映射中:如何设置默认值?

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

在我的项目中,我想设置我在x.hbm.xml文件中使用的三列的默认值:


如果用户未提供所有三个值,则仅将“第一个”(职业)设置为默认值“其他人不”。。或未提供多个字段,则只有一列获取默认值,而其他列则不获取


我试着用注解

@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";
            }