请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么我用@DynamicUpdate无法更新时间,不写private Date createTime,updateTime 就可以

图片描述
debug调式的截图

实体类:
package com.imooc.dataobject;

import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.Date;

/**

  • 类目
    */
    @Entity
    @DynamicUpdate
    @Data
    public class ProductCategory {
    @Id//主键
    @GeneratedValue//自增
    private Integer categoryId;//类目id

    private String categoryName;//类目名字

    private Integer categoryType;//类目编号

    private Date createTime;

    private Date updateTime;

    public ProductCategory() {
    }

    public ProductCategory(String categoryName, Integer categoryType) {
    this.categoryName = categoryName;
    this.categoryType = categoryType;
    }
    }

将 private Date createTime; private Date updateTime;去掉就可以添加时间。

正在回答

3回答

廖师兄 2019-08-30 15:51:58

这条sql,是没加@DynamicUpdate的时候打印的吧

insert into product_category (category_name, category_type, create_time, update_time) values (?, ?, ?, ?)


要加上@DynamicUpdate的。


再看看表结构,和我的不一样吗?

-- 类目create table `product_category` (    
`category_id` int not null auto_increment,    
`category_name` varchar(64) not null comment '类目名字',    
`category_type` int not null comment '类目编号',    
`create_time` timestamp not null default current_timestamp comment '创建时间',    
`update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改时间',
primary key (`category_id`),    
UNIQUE KEY `uqe_category_type` (`category_type`)
);


0 回复 有任何疑惑可以回复我~
  • 提问者 qq_慕前端2496093 #1
    我加了@DynamicUpdate,
    而且不单单这个表,我后面所有表都是一样的情况。
    
    
    我的表:
    CREATE TABLE `product_category` (
    `category_id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
    `category_name` VARCHAR ( 64 ) NOT NULL COMMENT '类目名字',
    `category_type` INT ( 11 ) NOT NULL COMMENT '类目编号',
    `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
    PRIMARY KEY ( `category_id` ) USING BTREE,
    UNIQUE KEY `uqe_category_type` ( `category_type` ) USING BTREE 
    ) ENGINE = INNODB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC;
    回复 有任何疑惑可以回复我~ 2019-08-30 20:38:26
  • 提问者 qq_慕前端2496093 #2
    我现在弄好了,我重新安装了数据库,可能是之前我弄别的项目的时候,数据库库配置了很多其他的东西导致的。
    回复 有任何疑惑可以回复我~ 2019-08-31 10:54:36
  • 廖师兄 回复 提问者 qq_慕前端2496093 #3
    好的。你采纳为正确答案吧,表示这个问题已解决。
    回复 有任何疑惑可以回复我~ 2019-09-01 22:57:17
提问者 qq_慕前端2496093 2019-08-30 14:24:14

Hibernate: insert into product_category (category_name, category_type, create_time, update_time) values (?, ?, ?, ?)

2019-08-30 14:22:09,874 - binding parameter [1] as [VARCHAR] - [呵呵呵]

2019-08-30 14:22:09,875 - binding parameter [2] as [INTEGER] - [6]

2019-08-30 14:22:09,876 - binding parameter [3] as [TIMESTAMP] - [null]

2019-08-30 14:22:09,876 - binding parameter [4] as [TIMESTAMP] - [null]

2019-08-30 14:22:09,890 - SQL Error: 1048, SQLState: 23000

2019-08-30 14:22:09,890 - Column 'create_time' cannot be null


org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement



0 回复 有任何疑惑可以回复我~
廖师兄 2019-08-29 23:53:39

看控制台的sql语句

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_慕前端2496093 #1
    Hibernate: insert into product_category (category_name, category_type, create_time, update_time) values (?, ?, ?, ?)
    
    2019-08-30 14:22:09,874 - binding parameter [1] as [VARCHAR] - [呵呵呵]
    
    2019-08-30 14:22:09,875 - binding parameter [2] as [INTEGER] - [6]
    
    2019-08-30 14:22:09,876 - binding parameter [3] as [TIMESTAMP] - [null]
    
    2019-08-30 14:22:09,876 - binding parameter [4] as [TIMESTAMP] - [null]
    
    2019-08-30 14:22:09,890 - SQL Error: 1048, SQLState: 23000
    
    2019-08-30 14:22:09,890 - Column 'create_time' cannot be null
    
    
    
    org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
    回复 有任何疑惑可以回复我~ 2019-08-30 14:24:30
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信