2016-08-30 19 views
0

我有一個用於後端的彈簧數據休息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],{}> 

什麼想法?

**編輯。

+0

你檢查,如果你連接到數據庫? – lsiva

+0

也許試圖將空內容保存到任何需要內容的字段? –

+0

是的,因爲我可以發佈任何東西,但我甚至可以更新一個實際的「ExpedienteDictamen」 我不確定這一點。我可能會錯誤地傳遞「Expediente」。有任何想法嗎? – r007

回答

1

你是如何創建ExpedienteDictamen沒有敏捷和口碑的價值,因爲這些不可空?

由於這些特性也有插入和更新爲假,可以使用Expediente/Dictamen實體創建ExpedienteDictamen記錄

+0

我可以從expediente發佈並獲取「dictamenes」寫入數據庫的值,但不是「Expediente」的值 – r007

+0

我沒有收到你,我的意思是你無法更新ExpedienteDictamen - > expediente和dictamen通過發佈ExpedienteDictamen實體,因爲這些實體被註釋爲可更新和可插入的false。 – Murthy

+0

改變了這一點,現在進行測試,沒有意識到它。 – r007

相關問題