2016-08-30 11 views
0

私はバックエンド用のスプリングデータレストAPIとフロントエンド用のAngularJs(DBとしてのmysql)を持っています。新しいオブジェクトのPOSTを実行できません。SPRING DATA REST

@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; 
は、私はJAVAロジック

混在JavaクラスExpedienteDictamen以下を作ったリポジトリを使用して "expediente" に "dictamenes" のリストを追加しようとしています

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が正常に動作しているようです。

reposは、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

expedienteとdictamenの値を持たないExpedienteDictamenは、どのようにNullableでないため作成していますか?これらの特性はまた、ExpedienteDictamenのレコードがExpediente/Dictamenエンティティを使用して作成することができ、偽のように挿入可能と更新可能があるので

+0

私はexpedienteから投稿し、 "dictamenes"の値を "Expediente"の値ではなく、DBに書き込むことができます – r007

+0

私はあなたを取得しませんでした、私はあなたがExpedienteDictamenを更新できないことを意味します - > expedienteとdictamen ExpedienteDictamenエンティティは、更新可能で挿入可能なfalseとして注釈されているため、属性を属性として使用します。 – Murthy

+0

これをテストすると、それを認識できませんでした。 – r007

関連する問題