gpt4 book ai didi

java - 无法对新对象执行 POST SPRING DATA REST

转载 作者:行者123 更新时间:2023-12-01 09:33:05 25 4
gpt4 key购买 nike

我有一个用于后端的 spring data Rest api 和一个用于前端的 AngularJs(mysql 作为数据库)。我正在尝试使用我制作的以下 JAVA 逻辑的存储库将“dictamenes”列表添加到“expediente”中

混合 Java 类 ExpedienteDictamen:

@Entity
@Table(name="expediente_dictamen")
public class ExpedienteDictamen implements Serializable{

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name = "id")
private Long id;
@RestResource(exported=false)
@ManyToOne(fetch = FetchType.EAGER, targetEntity = Expediente.class, optional=false, cascade=CascadeType.MERGE)
@JoinColumns(value = {
@JoinColumn(name = "expediente", referencedColumnName = "id", insertable = true, updatable = true, nullable = true)})
private Expediente expediente;
@RestResource(exported=false)
@ManyToOne(fetch = FetchType.EAGER, targetEntity = Dictamen.class, optional=false, cascade=CascadeType.MERGE)
@JoinColumns(value = {
@JoinColumn(name = "dictamen", referencedColumnName = "id", insertable = true, updatable = true, nullable = true)})
private Dictamen dictamen;
@Column(name = "fecha_carga")
private Date fechaCarga;
@Column(name = "fecha_mod")
private Date fechaMod;
@Column(name = "usuario_carga")
private String usuarioCarga;
@Column(name = "usuario_mod")
private String usuarioMod;

权宜之计:

@Entity
@Table(name = "expediente")
public class Expediente implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name = "id")
private Long id;
@Column(name = "numero_expediente")
private String numeroExpediente;
@Column(name = "acta_recepcion")
private String actaRecepcion;
@Column(name = "acta_aceptacion")
private String actaAceptacion;
@Column(name = "cartilla_medica")
private String cartillaMedica;
@Column(name = "cartilla_medica_obs")
private String cartillaMedicaObs;
@Column(name = "medico_acepta")
private String medicoAcepta;
@Column(name = "cartilla_notificacion")
private String cartillaNotificacion;
@RestResource(exported=false)
@ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST})
@JoinColumn(name = "solicitud", referencedColumnName = "id")
private Solicitud solicitud;
@RestResource(exported=false)
@ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST})
@JoinColumn(name = "franquicia", referencedColumnName = "id")
private Franquicia franquicia;
@RestResource(exported=false)
@ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST})
@JoinColumn(name = "disposicion", referencedColumnName = "id")
private Disposicion disposicion;
@RestResource(exported=false)
@ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST})
@JoinColumn(name = "paso", referencedColumnName = "id")
private Paso paso;
@OrderBy(value="dictamen")
@RestResource(exported=false)
@OneToMany(fetch = FetchType.EAGER, mappedBy = "expediente", cascade=CascadeType.ALL)
private Set<ExpedienteDictamen> expedienteDictamen = new HashSet<ExpedienteDictamen>();
@Column(name = "obs_documentacion")
private String obsDocumetacion;
@Column(name = "documentacion")
private Boolean documentacion;
@Column(name = "juntamedica")
private Boolean juntamedica;
@Column(name = "visa_rehabilitacion")
private Boolean visaRehabilitacion;
@Column(name = "visa_dos")
private Boolean visaDos;
@Column(name = "mesa_entradas")
private Boolean mesaEntradas;
@Column(name = "direccion_nacional")
private Boolean direccionNacional;
@Column(name = "finalizado")
private Boolean finalizado;
@Column(name = "fecha_carga")
private Date fechaCarga;
@Column(name = "fecha_mod")
private Date fechaMod;
@Column(name = "usuario_carga")
private String usuarioCarga;
@Column(name = "usuario_mod")
private String usuarioMod;

口语:

@Entity
@Table(name = "dictamen")
public class Dictamen implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name = "id")
private Long id;
@Column(name = "dictamen")
private String dictamen;
@Column(name = "fecha_dictamen")
private Date fechaDictamen;
@Column(name = "numero_dictamen")
private String numeroDictamen;

到目前为止,除了保存 ExpedienteDictamen 之外的所有操作似乎都工作正常。

存储库是使用 JpaRepository 的标准存储库。

当我发布到现有的“ExpedienteDictamen”时,一切正常,但是当我尝试创建一个新的“ExpedienteDictamen”时,它会显示以下内容:

  Query is: insert into expediente_dictamen (fecha_carga, fecha_mod, usuario_carga, usuario_mod) values (?, ?, ?, ?)
Query is:
insert into expediente_dictamen (fecha_carga, fecha_mod, usuario_carga, usuario_mod) values (?, ?, ?, ?)
2016-08-30 16:17:01.792 DEBUG 30635 --- [nio-8080-exec-5] a.g.s.f.aop.logging.LoggingAspect : Enter: ar.gob.snr.franquicia.web.rest.errors.ExceptionTranslator.processRuntimeException() with argument[s] = [org.springframework.orm.jpa.JpaSystemException: could not execute statement; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement]
2016-08-30 16:17:01.792 DEBUG 30635 --- [nio-8080-exec-5] a.g.s.f.aop.logging.LoggingAspect : Exit: ar.gob.snr.franquicia.web.rest.errors.ExceptionTranslator.processRuntimeException() with result = <500 Internal Server Error,ar.gob.snr.franquicia.web.rest.errors.ErrorDTO@6a850e14,{}>

有什么想法吗?

**已编辑。

最佳答案

您如何在没有 expediente 和 dictamen 值的情况下创建 ExpedienteDictamen,因为这些值不可为空?

由于这些属性也将 insertable 和 updateable 设置为 false,因此可以使用 Expediente/Dictamen 实体创建 ExpedienteDictamen 记录

关于java - 无法对新对象执行 POST SPRING DATA REST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39235470/

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