我需要插入一个空值,而不是空字符串到我的H2数据库。我的实体看起来像这样:
@Entity
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Link extends Auditable implements Serializable {
private static final long serialVersionUID = -5337989744648444109L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotEmpty(message = "title is required")
@Column(length = 50)
private String title;
@Column(unique = true, nullable = true)
private String url;
}
我的sql语句包含值,它将从Hibernate生成,如下所示
insert
into
link
(link_id, created_by, creation_date, title, url)
values
(null, ?, ?, ?, ?,) -
session_id=2B491C6BFFE4F66BD63C6453E234D991 user_ip=0:0:0:0:0:0:0:1 2022-12-21 14:21:21,232 |
https-jsse-nio-5550-执行代码-9|痕量|o.h.t.d.sql.BasicBinder|将参数1绑定为[VARCHAR]-[www.example.com]-会话标识符= 2B491C6BFFE4F66BD63C6453E234D991用户IP地址= 0:0:0:0:0:0:0:0:1 2022年12月21日14:21:21,232mymail@test.com痕量|o.h.t.d.sql.BasicBinder|将参数[2]绑定为[时间戳]-[2022年12月21日14:21:21.231038300]-会话ID = 2B491C6BFFE4F66BD63C6453E234D991用户IP = 0:0:0:0:0:0:0:1 2022年12月21日14:21:21,233|https-jsse-nio-5550-执行代码-9|痕量|o.h.t.d.sql.BasicBinder|将参数[3]绑定为[VARCHAR]-[测试]-会话ID = 2B491C6BFFE4F66BD63C6453E234D991用户IP = 0:0:0:0:0:0:0:1 2022年12月21日14:21:21,233|https-jsse-nio-5550-执行代码-9|痕量|o.h.t.d.sql.BasicBinder|将参数[4]绑定为[VARCHAR]-[null]-会话ID = 2B491C6BFFE4F66BD63C6453E234D991用户IP = 0:0:0:0:0:0:0:1| o.h.t.d.sql.BasicBinder | binding parameter [4] as [VARCHAR] - [null] - session_id=2B491C6BFFE4F66BD63C6453E234D991 user_ip=0:0:0:0:0:0:0:1
最后一个参数[4]将填充空值,但我的H2-数据库中仍有空字符串。
我已经测试过,我可以手动插入空值到这个列与天真的sql语句。
1条答案
按热度按时间z0qdvdin1#
因为我已经把SpringBoot从2.4.5更新到2.7.7,我不再有这个bug了