2017-07-30 46 views
0

下面是這兩個表的田地:插入 '身份證' 與外鍵(HQL)字段

GuiaDocente: ID,當然,模式,asignatura_ing

事情: ID,guia_docente_id,模塊,主題,人物,信貸,unidad_temporal,profesor_asignatura,電子郵件,horario_atencion, coordinador_curso,coordinador_modulo

該類型的關係是「一對一的」

我要插入的所有數據和外鍵表中的「東西」,「guide_docente_id」。下面,它是顯示代碼...

class InsercionService { 

def insercionMateria(guia_docente_id, modulo, materia, caracter, creditos, unidad_temporal, profesor_asignatura, email,horario_atencion, coordinador_curso, coordinador_modulo){ 

    def insertMateria = new Materia(guia_docente_id: guia_docente_id, modulo: modulo, materia: materia, 
        caracter: caracter, creditos: creditos, unidad_temporal: unidad_temporal, 
        profesor_asignatura: profesor_asignatura, email: email, horario_atencion:horario_atencion, 
        coordinador_curso: coordinador_curso, coordinador_modulo: coordinador_modulo) 

      insertMateria.save(failOnError: true) 
} 
} 

但是,它顯示了一個插入我的錯......

驗證錯誤(S)發生保存(期間): - 字段錯誤的對象關於字段 'generacionGuiasDocentes.guiaDocente.Materia' 'guiaDocente': 拒絕值[空]。 代碼[generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.error.generacionGuiasDocentes.guiaDocente.Materia.guiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.error.guiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.error.generacionGuiasDocentes .guiaDocente.GuiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.error,materia.guiaDocente.nullable.error.generacionGuiasDocentes.guiaDocente.Materia.guiaDocente,materia.guiaDocente.nullable.error.guiaDocente,materia.guiaDocente.nullable.error .generacionGuiasDocentes.guiaDocente.GuiaDocente,materia.guiaDocente.nullable.error,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.generacionGuiasDocentes.guiaDocente.Materia.guiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.guiaDocente,generacionGuiasDocentes.guiaDocente.Materia我.guiaDocente.nullable.generacionGuiasDocentes.guiaDocente.GuiaDo CENTE,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable,materia.guiaDocente.nullable.generacionGuiasDocentes.guiaDocente.Materia.guiaDocente,materia.guiaDocente.nullable.guiaDocente,materia.guiaDocente.nullable.generacionGuiasDocentes.guiaDocente.GuiaDocente,materia.guiaDocente。空,nullable.generacionGuiasDocentes.guiaDocente.Materia.guiaDocente,nullable.guiaDocente,nullable.generacionGuiasDocentes.guiaDocente.GuiaDocente,可爲空]。 參數[guiaDocente,類 generacionGuiasDocentes.guiaDocente.Materia];默認消息[該 屬性[{0}]類[{1}]不能爲空]

引起:grails.validation.ValidationException:驗證錯誤(S)發生 保存()在: - 字段錯誤在字段「guiaDocente」對象 「generacionGuiasDocentes.guiaDocente.Materia」: 拒絕值[空]。 代碼[generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.error.generacionGuiasDocentes.guiaDocente.Materia.guiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.error.guiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.error.generacionGuiasDocentes .guiaDocente.GuiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.error,materia.guiaDocente.nullable.error.generacionGuiasDocentes.guiaDocente.Materia.guiaDocente,materia.guiaDocente.nullable.error.guiaDocente,materia.guiaDocente.nullable.error .generacionGuiasDocentes.guiaDocente.GuiaDocente,materia.guiaDocente.nullable.error,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.generacionGuiasDocentes.guiaDocente.Materia。guiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.guiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable.generacionGuiasDocentes.guiaDocente.GuiaDocente,generacionGuiasDocentes.guiaDocente.Materia.guiaDocente.nullable,materia.guiaDocente.nullable.generacionGuiasDocentes.guiaDocente。 Materia.guiaDocente,materia.guiaDocente.nullable.guiaDocente,materia.guiaDocente.nullable.generacionGuiasDocentes.guiaDocente.GuiaDocente,materia.guiaDocente.nullable,nullable.generacionGuiasDocentes.guiaDocente.Materia.guiaDocente,nullable.guiaDocente,nullable.generacionGuiasDocentes.guiaDocente。 GuiaDocente,可爲空]。 參數[guiaDocente,類 generacionGuiasDocentes.guiaDocente.Materia];默認消息[該 屬性[{0}]類[{1}]不能爲空]

...以下是在代碼

控制器:

class GuiaDocenteController { 
def insercionMateria(){ 
     def idGuiaDocente = params.id 
     def modulo = params.modulo 
     def materia = params.materia 
     def caracter = params.caracter 
     def creditos = params.creditos 
     def unidad_temporal = params.unidad_temporal 
     def profesor_asignatura = params.profesor_asignatura 
     def email = params.email 
     def horario_atencion = params.horario_atencion 
     def coordinador_curso = params.coordinador_curso 
     def coordinador_modulo = params.coordinador_modulo 

     def insercionMateria = insercionService.insercionMateria(idGuiaDocente, modulo, materia, caracter, creditos, 
       unidad_temporal, profesor_asignatura, email, horario_atencion, coordinador_curso, coordinador_modulo) 

     render insercionMateria as JSON 
} 
} 

jQuery的:

$(document).ready(function() { 
//--- asignatura --- 
    $(".btnActualizaAsignatura").click(function() { 

     for (instance in CKEDITOR.instances) { 
      CKEDITOR.instances[instance].updateElement(); 
     } 

     URL = enlaceObjetos.urlIdAsignatura; 
     URL2 = enlaceObjetos.urlInsercionAsignatura; 
     URL3 = enlaceObjetos.urlActualizacionAsignatura; 

     actualizaFormulario(URL, URL2, URL3); 
    }) 
}); 

function actualizaFormulario(URL, URL2, URL3) { 

    var datos, idGuiaDocente, idParam; 

    idGuiaDocente = localStorage.getItem("idGuiaDocente"); 
    idParam = $.param({id: idGuiaDocente}); 

    datos = $("#idFormulario").serialize() + "&" + idParam; 

    alert("El resultado es: " + idGuiaDocente); 
    alert("Datos: " + datos); 

    peticionConDatosCallBackAjax(URL, parseInt(datos), function (data){ 

     if(data.toString() === ""){ 
      //se inserta 
      alert("El dato es: " + data); 

      //*** - insert data in the table Materia - *** 
      peticionConDatosCallBackAjax(URL2, datos, function (data){ 

       if(data.toString()){ 

        alert("Success"); 
        //muestra un 'Toast' en pantalla' 
        //showToast(); 
       } 
      }); 

     }else{ 
      //se actualiza 
      alert("Existe el dato: " + data); 
     } 
    }); 
} 

域 「GuiaDocente」

class GuiaDocente { 

    String curso 
    String modalidad 
    String asignatura_ing 

    static belongsTo = [asignatura:Asignatura] 
    static hasOne = [materia:Materia] 

    static constraints = { 
     curso blank: false 
     modalidad blank: false 
     asignatura_ing nullable: true 
     materia nullable: true 
    } 
} 

域 「本草」

class Materia { 

    String modulo 
    String materia 
    String caracter 
    String creditos 
    String unidad_temporal 
    String profesor_asignatura 
    String email 
    String horario_atencion 
    String coordinador_curso 
    String coordinador_modulo 

    static belongsTo = [guiaDocente:GuiaDocente] 

    static constraints = { 
     modulo nullable: true 
     materia nullable: true 
     caracter nullable: true 
     creditos nullable: true 
     unidad_temporal nullable: true 
     profesor_asignatura nullable: true 
     email nullable: true 
     horario_atencion nullable: true 
     coordinador_curso nullable: true 
     coordinador_modulo nullable: true 
    } 
} 

回答

0

服務代碼更改爲:

def insercionMateria(guia_docente_id, modulo, materia, caracter, creditos, unidad_temporal, profesor_asignatura, email,horario_atencion, coordinador_curso, coordinador_modulo){ 
    GuiaDocente guiaDocement = GuiaDocente.read(guia_docente_id) 
    def insertMateria = new Materia(guiaDocente: guiaDocement, modulo: modulo, materia: materia, 
           caracter: caracter, creditos: creditos, unidad_temporal: unidad_temporal, 
           profesor_asignatura: profesor_asignatura, email: email, horario_atencion:horario_atencion, 
           coordinador_curso: coordinador_curso, coordinador_modulo: coordinador_modulo) 
    insertMateria.save(failOnError: true) 
} 

有作爲Materialguia_docente_id沒有這樣的領域。根據您屬於關聯你必須爲對象guiaDocente將產生guiaDocente_id ESTA INSTEAD OF類guia_docente_id。您可以使用object.properties看到常規

+0

對象的所有屬性的代碼工作正常,太好了!。非常感謝! –