我们在Hibernate实体持久化时,可能有的字段为null或为空,但我们在Save()或Update()时,数据库可能设置了not null default 0(非空且有默认值),这时我们就不想在save时插入实体中为空的字段。我们只需要
在实体类上加上:
@DynamicInsert(true)//动态插入
@DynamicUpdate(true)//动态更新
@Entity
@Table(name="mession")
@DynamicInsert(true)
public class Mession {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="pk_id",length=11)
private Integer pk_id;
@Column(name="m_name")
private String m_name;
@Column(name="m_time")
private String m_time;
@Column(name="meaparam_id")
private Integer meaparam_id;
@Column(name="ts")
@Temporal(TemporalType.TIMESTAMP) //获取数据库时间格式
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") //Hibernate中@ResponseBody返回的时间格式
private Date ts;
@Column(name="dr")
private Integer dr;
public Mession() {
super();
// TODO Auto-generated constructor stub
}
public Mession(Integer pk_id, String m_name, String m_time,
Integer meaparam_id, Date ts, Integer dr) {
super();
this.pk_id = pk_id;
this.m_name = m_name;
this.m_time = m_time;
this.meaparam_id = meaparam_id;
this.ts = ts;
this.dr = dr;
}
get/set()
}
Hibernate动态插入与更新
本文介绍如何使用Hibernate的@DynamicInsert和@DynamicUpdate注解来实现动态插入和更新操作,避免在保存或更新实体时将空值写入数据库中已设置非空约束的字段。
698

被折叠的 条评论
为什么被折叠?



