gpt4 book ai didi

java - 错误 ExceptionMapperStandardImpl 使用 Hibernate 持久保存在 sql 中

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:45 27 4
gpt4 key购买 nike

尝试保留 Fiscalizacao 类时:

@Id
@Column(name = "self_id", columnDefinition = "number")
private Long selfId;
@Null
@Column(columnDefinition = "varchar2(2000 byte)")
private String relatorio;
@NotNull
@ManyToOne(cascade = { CascadeType.DETACH, CascadeType.PERSIST, CascadeType.REFRESH,
CascadeType.REMOVE }, fetch = FetchType.LAZY)
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
@JoinColumn(name = "tipo_grau_aproveitamento_id", columnDefinition = "number")
private TipoGrauAproveitamento tipoGrauAproveitamento;
@NotNull
@ManyToOne(cascade = { CascadeType.DETACH, CascadeType.PERSIST, CascadeType.REFRESH,
CascadeType.REMOVE }, fetch = FetchType.LAZY)
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
@JoinColumn(name = "tipo_medida_id", columnDefinition = "number")
private TipoMedida tipoMedida;
@Null
@ManyToOne(cascade = { CascadeType.DETACH, CascadeType.PERSIST, CascadeType.REFRESH,
CascadeType.REMOVE }, fetch = FetchType.LAZY)
@JsonIgnore
@JsonProperty(access = Access.READ_ONLY)
@JoinColumns({ @JoinColumn(name = "plano_id", referencedColumnName = "self_id"),
@JoinColumn(name = "processo_id", referencedColumnName = "processo_id") })
private PlanoFiscalizacaoProcesso plano;
@Null
@ManyToOne(cascade = { CascadeType.DETACH, CascadeType.PERSIST, CascadeType.REFRESH,
CascadeType.REMOVE }, fetch = FetchType.LAZY)
@JsonIgnore
@JoinColumn(name = "reparticao_id", columnDefinition = "number")
@NotFound(action = NotFoundAction.IGNORE)
private Reparticao reparticao;
@Null
@Column(name = "data_fiscalizacao", columnDefinition = "date")
private Date dataFiscalizacao;
@ManyToOne(cascade = { CascadeType.DETACH, CascadeType.PERSIST, CascadeType.REFRESH,
CascadeType.REMOVE }, fetch = FetchType.LAZY)
@JsonIgnore
@JoinColumn(name = "status_sync", referencedColumnName = "status", columnDefinition = "varchar2(1 byte)")
private SyncStatus status_sync;
@Null
@Column(name = "version_date", columnDefinition = "date")
private Date versionDate;

我收到以下错误:

[Validation failed for classes [mz.co.sigit.teste.fiscalizacao.plano.processo.fiscalizacao.Fiscalizacao] during persist time for groups [javax.validation.groups.Default, ]
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='must be null', propertyPath=plano, rootBeanClass=class mz.co.sigit.teste.fiscalizacao.plano.processo.fiscalizacao.Fiscalizacao, messageTemplate='{javax.validation.constraints.Null.message}'}
ConstraintViolationImpl{interpolatedMessage='must be null', propertyPath=dataFiscalizacao, rootBeanClass=class mz.co.sigit.teste.fiscalizacao.plano.processo.fiscalizacao.Fiscalizacao, messageTemplate='{javax.validation.constraints.Null.message}'}
ConstraintViolationImpl{interpolatedMessage='must be null', propertyPath=relatorio, rootBeanClass=class mz.co.sigit.teste.fiscalizacao.plano.processo.fiscalizacao.Fiscalizacao, messageTemplate='{javax.validation.constraints.Null.message}'}]]

我不明白为什么插值消息表明约束违规列表中的字段必须为空。

我使用了注释@Null,因此数据库字段属性可以接受NULL值。尽管没有 null 值被传递到字段。

例如,JSON 中的 plano 字段:

"plano" : {
"planoFiscalizacao" : {
"dataPrevisaoFim" : "2018-09-03T09:00:00.000+0200",
"dataPrevisaoInicio" : "2018-08-03T09:00:00.000+0200",
"selfId" : 201000000291,
"loaded" : true,
"managed" : false,
"valid" : true
}

最佳答案

要在数据库中允许空值,您必须:

@Column(nullable = true)

@Null 根据 JSR-303 检查该值是否为 null

关于java - 错误 ExceptionMapperStandardImpl 使用 Hibernate 持久保存在 sql 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51987096/

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