Recentemente, ao escrever projetos de shopping on -line, encontrei um problema: o Hibernate não teve nenhum efeito depois de executar o método save () ou update (), não houve mudança no banco de dados, e o console não relatou erros, o que me deixou sem palavras ...
Eu verifiquei on-line e algumas pessoas disseram que era um problema de auto-crescimento das chaves primárias, e algumas pessoas disseram que a transação não foi iniciada, por isso era impossível escrever ou atualizar o banco de dados. Eu li a análise deles em detalhes e tudo fazia sentido, mas essas soluções não funcionaram para mim, porque minha chave primária não tem problemas, e a transação é gerenciada na primavera, e tudo bem em outras operações de salvamento, mas não há problema.
Como não há problema objetivamente, concentrei -me nos objetos específicos para salvar ou atualizar e analisei cuidadosamente o Pojo. Primeiro, vamos dar uma olhada nas tabelas no banco de dados correspondente do objeto para salvar:
/*======================================================================= ========================================================================// Crie produto de tabela ( /* Número do produto, crescimento automático* / id int primário não é nulo auto_increment, /* nome do produto* / nome varchar (50), /* Preço do produto* / preço decimal (8,2), /* Data do produto* / pic varchar (300), /* Produto Introdução* / signetTxt, /* Produto Detalhes* / XREM / * Seja um produto recomendado, ele pode ser exibido na página inicial do shopping * / comentário, / * Seja um produto válido, pode ser exibido na página inicial do shopping * / Open bool, / * A categoria Número da categoria de referência (id);
Em seguida, o Pojo específico não será publicado, mas as propriedades de campo e os métodos definidos e obtidos gerados com base nesta tabela. Eu acho que o campo com maior probabilidade de ter problemas deve ser essa data de tempo, então olhei para o código sobre a data em Pojo:
@Entity Classe pública O produto implementa Java.io.Serializable {// Fields Data de timestamp privado; // omitir outro código irrelevante ... @column (name = "date", anulable = false, comprimento = 19) public timestamp getDate () {return this.date; } public void SetDate (data do timestamp) {this.date = date; }} Por isso, procurei esse registro de data e hora novamente e descobri que o problema está aqui, basta alterar o registro de data e hora para java.util.date. Em seguida, um objeto de data é passado e o Hibernate se converterá automaticamente ao tipo de timestamp.
Esse problema também me dá uma revelação : a incapacidade de executar operações de banco de dados também pode ser um problema com o próprio objeto, e precisamos solucioná -lo entre os campos da tabela e os atributos POJO.
Link original: http://blog.csdn.net/eson_15/article/details/51383298
O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.