我正在使用hibernate将我的数据保存到数据库中,我不断收到此错误invalid byte sequence for encoding "UTF8": 0x00
快速搜索我发现postgresql不支持在文本字段中存储空字符,并且可以在Config.groovy中找到它
"grails.databinding.convertEmptyStringsToNull"
但是我的项目中没有这个文件,所以,我有点丢失..
我该怎么做才能解决这个问题?
包豆
控制器:
class AlunoController {
def index() {
def listaCidade = Cidade.list()
def listaProfissao = Profissao.list()
def listaEscolaridade = Escolaridade.list()
def listaCurso = Curso.list()
def listaUnidade = Unidade.list()
render(view:"/aluno/index", model:[listaCidade:listaCidade,
listaProfissao:listaProfissao, listaEscolaridade:listaEscolaridade,
listaCurso:listaCurso, listaUnidade:listaUnidade])
}
def salvar(){
Aluno aluno = new Aluno()
println params.escolaridade
println params.escolaridade != "none"
println params.escolaridade != 'none'
aluno.nome = params.nome
aluno.rg = params.rg
aluno.cpf = params.cpf
aluno.ra = params.ra
aluno.turma = params.turma.toInteger()
aluno.genero = params.genero
aluno.cod_barras = params.cod_barras
aluno.nascimento = Date.parse("yyyy-MM-dd", params.nascimento)
aluno.curso = Curso.get(params.curso)
aluno.endereco = params.endereco
if (params.nroendereco != ''){
aluno.nroendereco = Integer.parseInt(params.nroendereco)
}
aluno.telefone = params.telefone
aluno.bairro = params.bairro
aluno.complemento = params.complemento
aluno.cidade = Cidade.get(params.cidade)
aluno.profissao = Profissao.get(params.profissao)
aluno.escolaridade = Escolaridade.get(params.escolaridade)
aluno.unidade = Unidade.get(params.unidade)
if (!aluno.validate()) {
render(view:"/layouts/message", model:[mensagem:"Ops, algo deu errado!"])
aluno.errors.allErrors.each {
println it
}
}else{
aluno.save (flush: true)
render(view:"/layouts/message", model:[mensagem:"Aluno salvo com sucesso!"])
}
}
def mostrar(){
Aluno aluno = new Aluno()
render(template:"/aluno/form", model: [aluno:aluno])
}
}
形式:
<g:form controller="aluno" action="salvar">
<label>Nome:</label>
<g:textField name="nome" required="true"/><br>
<label>RG:</label>
<g:textField name="rg" onkeypress="validate(event)"/> <br>
<label>CPF:</label>
<g:textField name="cpf" onkeypress="validate(event)"/> <br>
<label>RA:</label>
<g:textField name="ra" required="true" onkeypress="validate(event)"/><br>
<label>Turma:</label>
<g:textField name="turma" required="true" onkeypress="validate(event)"/><br>
<label>Genero: </label>
<select name="genero">
<option value="M">Masculino</option>
<option value="F">Feminino</option>
</select><br>
<label>Código de Barras:</label>
<g:textField name="cod_barras" required="true"/><br>
<label>Data de Nascimento:</label>
<input type="date" name="nascimento" required="true"><br>
<label>Unidade Universitaria:</label>
<g:select name="unidade" from="${listaUnidade}" optionValue="nome" optionKey="id" required="true"/><br>
<label>Curso:</label>
<g:select name="curso" from="${listaCurso}" optionValue="nome" optionKey="id" required="true"/><br>
<label>Endereço:</label>
<g:textField name="endereco"/><br>
<label>Número:</label>
<g:textField name="nroendereco" onkeypress="validate(event)"/><br>
<label>Telefone:</label>
<g:textField name="telefone" onkeypress="validate(event)"/><br>
<label>Bairro:</label>
<g:textField name="bairro"/><br>
<label>Complemento:</label>
<g:textField name="complemento"/><br>
<label>Cidade:</label>
<g:select name="cidade" from="${listaCidade}" optionValue="nome" optionKey="id" required="true"/><br>
<label>Profissão:</label>
<g:select name="profissao" from="${listaProfissao}" optionValue="nome" optionKey="id" required="true"/><br>
<label for="escolaridade">Escolaridade:</label>
<g:select name="escolaridade" from="${listaEscolaridade}" optionValue="nome" optionKey="id" noSelection="${["none":'Selecione...']}" required="true"/><br>
<input type="submit" value="Salvar"/>
<input type="button" name="btnCancelar" value="Cancelar"/>
<input type="hidden" name="id" value="">
</g:form>