@DynamicUpdate

来源:4-2 买家类目-dao(下)

qq_Loveyoulovef_0

2018-12-19

package com.im.sell.entity;

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;
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;
}

public ProductCategory categoryName(String categoryName) {
    this.categoryName = categoryName;
    return this;
}

public ProductCategory categoryType(Integer categoryType) {
    this.categoryType = categoryType;
    return this;
}

}
@Test
public void testUpdate() {
ProductCategory category = new ProductCategory();
category.setCategoryName(“有机食品”);
category.setCategoryType(3);
category.setCategoryId(1);

 /*   ProductCategory productCategory = productCategoryDao.findOne(1);
    productCategory.setCategoryType(4);
    productCategory.setCategoryName("有机红茶");*/
    ProductCategory targetCategory = productCategoryDao.save(category);
    System.out.println(targetCategory.toString());
    Assert.assertNotNull(targetCategory);
}

数据库中有个categoryId为1,categoryType为2的记录,我自己构造一个类目对象,按照上面贴出的测试进行更新,发现数据库中的创建时间和更新时间 一起变化控制台打印出的SQL是这个样子的:Hibernate: update product_category set category_name=?, category_type=?, create_time=?, update_time=? where category_id=?,但是我从数据库中将这条数据查出来然后更新,就是可以的。很奇怪,不懂,请老师指点一下?

写回答

1回答

廖师兄

2018-12-19

你的疑问是什么呢?“创建时间和更新时间”不应该更新?

发出你的数据库建表语句来,让我看看是怎么写的。

另外,你问题里,可以把所有的代码都格式化,部分格式化,看着很别扭。

0
0

Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统

从0到1开发中小型企业级Java应用,并学会迭代重构技巧

6410 学习 · 5247 问题

查看课程