私はバックエンド用のスプリングデータレスト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],{}>
任意のアイデア?
**編集。
データベースに接続しているかどうかをチェックしましたか? – lsiva
コンテンツが必要なフィールドに空のコンテンツを保存しようとしている可能性がありますか? –
はい、何でも投稿できますので、実際の "ExpedienteDictamen"を更新することもできます 私はそれについてはわかりません。私は "Expediente"を間違って渡しているかもしれません。何か案は? – r007