gpt4 book ai didi

java - @Column(nullable=false) 在应用程序级别验证空检查

转载 作者:行者123 更新时间:2023-12-05 06:03:54 25 4
gpt4 key购买 nike

根据我的理解,nullable = false(比如对于列 customerid)仅对使用 hibernate 创建模式有用,并且在持久化之前不应进行任何类型的验证。我的数据库列没有这样的约束(它可以采用空值),同时将 customerid 为空的实体持久化,出现此错误

Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value :b
at org.hibernate.engine.internal.Nullability.checkNullability(Nullability.java:111) ~[hibernate-core-5.4.27.Final.jar:5.4.27.Final]
at org.hibernate.engine.internal.Nullability.checkNullability(Nullability.java:55) ~[hibernate-core-5.4.27.Final.jar:5.4.27.Final]
at

在我将我的 spring boot 版本更新到 2.4.2 后,这个错误开始不断出现

实体类

public class FaceIndexResponse extends AuditEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name="customer_id",nullable = false)
private String customerId;
@Column(name="application_id")
private String appid;}

我试图保存上述实体的服务类

public IndexFacesResult handle(FaceIndexModel model) throws IOException{
FaceIndexResponse response=new FaceIndexResponse();
response.setAppid(model.getApplicationId);
faceIndexResponseJpa.save(response);
}


Table "public.face_index_response"
Column | Type | Collation | Nullable | Default
----------------+-----------------------------+-----------+----------+----------------------------------
id | integer | | not null | generated by default as identity
customer_id | character varying(64) | | |
application_id | character varying(64) | | |

最佳答案

我不能在上面发表评论(rep 不够高),而且还不足以知道这会回答这个问题,但是看这里:https://www.baeldung.com/hibernate-notnull-vs-nullablehttps://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/appendices/Configurations.html如果你有这个设置,Hibernate 将在 DB 之前检查 null。

spring.jpa.properties.hibernate.check_nullability

所以我认为您拥有该属性集。

关于java - @Column(nullable=false) 在应用程序级别验证空检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66524227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com