Grails / groovy空字符串转换为null - 用于编码“UTF8”的无效字节序列:0x00

时间:2016-07-01 16:58:45

标签: hibernate postgresql grails

我正在使用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>

0 个答案:

没有答案