以下是两个表及其字段:
GuiaDocente: id,curso,modalidad,asignatura_ing
Materia: id,guia_docente_id,modulo,materia,caracter,creditos,unidad_temporal,profesor_asignatura,email,horario_atencion, coordinador_curso,coordinador_modulo
关系的类型是'一对一。
我想插入所有数据和外键" guide_docente_id"在表格" Materia"。下面是显示代码......
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)
}
}
但是,它显示了插入错误...
验证在save()期间发生错误: - 对象中的字段错误 ' generacionGuiasDocentes.guiaDocente.Materia'在场上' guiaDocente': 被拒绝的价值[null];代码 [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.guiaDoce nte.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,class generacionGuiasDocentes.guiaDocente.Materia];默认消息[La propiedad [{0}] de la clase [{1}] no puede ser nulo]
引起:grails.validation.ValidationException:验证错误 在save()期间发生: - 对象中的字段错误 ' generacionGuiasDocentes.guiaDocente.Materia'在场上' guiaDocente': 被拒绝的价值[null];代码 [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.guiaDoce nte.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,class generacionGuiasDocentes.guiaDocente.Materia];默认消息[La propiedad [{0}] de la clase [{1}] no puede ser nulo]
以下是代码......
控制器:
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);
}
});
}
Domain" 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
}
}
Domain" Materia"
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 :(得分: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)
}
guia_docente_id
课程中没有Material
这样的字段。根据您的所有权,您将guiaDocente
作为对象,在此课程中将生成guiaDocente_id
而不是guia_docente_id
。您可以使用object.properties查看groovy中对象的所有属性