我有一個用於後端的彈簧數據休息api和用於前端(用作數據庫的mysql)的AngularJs。 我想 「dictamenes」 的列表添加到 「expediente」 使用我做了以下JAVA邏輯無法爲新對象執行POST SPRING DATA REST
混合的Java Class 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;
Expediente:
@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;
Dictamen:
@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;
到目前爲止的一切,但SA對一個ExpedienteDictamen似乎工作正常。
回購是使用JpaRepository的標準回購。
當我張貼到現有的「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,[email protected],{}>
什麼想法?
**編輯。
你檢查,如果你連接到數據庫? – lsiva
也許試圖將空內容保存到任何需要內容的字段? –
是的,因爲我可以發佈任何東西,但我甚至可以更新一個實際的「ExpedienteDictamen」 我不確定這一點。我可能會錯誤地傳遞「Expediente」。有任何想法嗎? – r007