@Temporal注解存在于Spring Data Jpa依赖中

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId><version>2.1.3.RELEASE</version>
</dependency>
package javax.persistence;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Temporal {TemporalType value();
}
package javax.persistence;public enum TemporalType {DATE,TIME,TIMESTAMP;private TemporalType() {}
}

@Temporal注解使用时 TemporalType 的取值共有三个:DATETIMETIMESTAMP

构建的数据库表 tb_user 的结构如下:

CREATE TABLE `tb_user` (`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键ID',`name` VARCHAR(32) NOT NULL COMMENT '姓名',`age` INT NOT NULL COMMENT '年龄',`create_time` DATETIME NOT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) COMMENT = '用户表';

tb_user 表中的数据记录如下:

insert into `tb_user` (`id`, `name`, `age`, `create_time`) values('1','张三','18','2021-11-09');

第一种:@Temporal(TemporalType.DATE)

  假设当前实体类中存在字段createTime,在此字段上添加@Temporal(TemporalType.Date)注解,如果数据库中存储的是'yyyy-MM-dd hh:MM:ss'这种格式,即MySQL数据库该字段的类型为datetime

import javax.persistence.*;
import lombok.Data;
import java.util.Date;@Data
@Entity
@Table ( name ="tb_user" )
public class TbUser{@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "id")private Integer id;@Column(name = "name")private String name;@Column(name = "age")private Integer age;@Column(name = "create_time")@Temporal(TemporalType.DATE)private Date createTime;
}

构建的测试类为:

import com.bc.single.dao.UserDao;
import com.bc.single.entity.TbUser;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@Slf4j
@SpringBootTest
class SingleApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid contextLoads(){List<TbUser> list= userDao.findAll();System.out.println(list);}
}

输出结果:

[TbUser(id=1, name=张三, age=18, createTime=2021-11-09)]

第二种:@Temporal(TemporalType.TIME)

将createTime字段上的注解修改为@Temporal(TemporalType.TIME)注解

import javax.persistence.*;
import lombok.Data;
import java.util.Date;@Data
@Entity
@Table ( name ="tb_user" )
public class TbUser{@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "id")private Integer id;@Column(name = "name")private String name;@Column(name = "age")private Integer age;@Column(name = "create_time")@Temporal(TemporalType.TIME)private Date createTime;
}

执行上述测试类,其输出结果:

[TbUser(id=1, name=张三, age=18, createTime=17:07:08)]

第三种:@Temporal(TemporalType.TIMESTAMP)

将createTime字段上的注解修改为@Temporal(TemporalType.TIMESTAMP)注解

import javax.persistence.*;
import lombok.Data;
import java.util.Date;@Data
@Entity
@Table ( name ="tb_user" )
public class TbUser{@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "id")private Integer id;@Column(name = "name")private String name;@Column(name = "age")private Integer age;@Column(name = "create_time")@Temporal(TemporalType.TIMESTAMP)private Date createTime;
}

执行上述测试类,其输出结果:

[TbUser(id=1, name=张三, age=18, createTime=2021-11-09 17:07:08.0)]

特别提示:如果MySQL数据库该字段的类型为date,则在使用@Temporal(TemporalType.TIME)注解时会报错,使用其它两个注解不会报错

Spring Data Jpa的@Temporal注解相关推荐

  1. Spring Data Jpa的@DynamicInsert注解和@DynamicUpdate注解

    当前引入的Spring Data Jpa的版本为2.4.2 <dependency><groupId>org.springframework.boot</groupId& ...

  2. spring data JPA中@Modifying 注解完成新增操作

    错误现象描述 dao层代码如下 @Modifying@Query(value = "insert into t_p5_blog_link_his(click_hit, release_tim ...

  3. java jpa注解哪个包好,Spring Data JPA 中常用注解详解

    一.java对象与数据库字段转化 @Entity:标识实体类是JPA实体,告诉JPA在程序运行时生成实体类对应表 @Table:设置实体类在数据库所对应的表名 @Id:标识类里所在变量为主键 @Gen ...

  4. Spring data JPA使用@formula注解使用、查询不到内容

    @Formula注解就是使用查询语句动态生成类的一个属性,是一个虚拟的列,其并不存储在数据库中. 以下为一个与数据表映射的实体: @Data @Entity @Table ( name =" ...

  5. java 注解 jpa_详解Spring Data JPA使用@Query注解(Using @Query)

    经过几天的折腾,终于到了学习一个重量级的查询方式上,使用@query注解,使用注解有两种方式,一种是jpql的sql语言方式,一种是原生sql的语言,略有区别,后者我们更熟悉一些.话不多说,看代码. ...

  6. spring data jpa配置

    spring data jpa 配置使用注解配置 @JoinColumn 定义外键关联的字段名称 name:目标表的字段名 referencedColumnName:本实体的字段名,非必填,默认为本表 ...

  7. Spring Data JPA 之 @Entity 的常用注解

    6 Spring Data JPA 之 @Entity 的常用注解 前⼏课时介绍了 Repository 的⽤法,其中经常会提到"实体类"(即前⾯的User 类),它是对我们数据库 ...

  8. Spring data JPA 之 Jackson 在实体里面的注解详解

    8 Spring data JPA 之 Jackson 在实体里面的注解详解 经过前⾯课时的讲解,相信你已经对实体⾥⾯的 JPA 注解有了⼀定的了解,但是实际⼯作中你会发现实体⾥⾯不仅有 JPA 的注 ...

  9. Spring data JPA 笔记

    一.spring data jpa 常用注解 1.  @Entity  :标识实体类是JPA实体,告诉JPA在程序运行时生成实体类对应表 2.  @Table  :设置实体类在数据库所对应的表名 3. ...

最新文章

  1. Javascript学习--------详解window窗口对象
  2. AJAX+JSF组件实现高性能的文件上载
  3. lamp rpm mysql_centos5.9使用RPM包搭建lamp平台
  4. openharmony编译报错ubuntu20.04按照官方文档,hb set报错为OHOS ERROR] Invalid vendor path: /home/openharmony/vendor
  5. 红帽:虚拟化关键业务应用需突破五大障碍
  6. (三)标记图像以进行AI模型训练
  7. python PEP 487
  8. python学习手册-Python学习手册
  9. php -- 目录、路径、磁盘
  10. [math][mathematica] archlinux 下 mathematica 的安装 (科学计算软件 mathematica/matlab/sagemath)...
  11. oppo r9s 解bl锁,刷入第三方recovery
  12. 第17期基于SSM爱家房屋租赁管理系统
  13. wincc 写入mysql,WINCC读写SQL数据库的示例
  14. 项目实战(一)HTML5+CSS3+JS完成前端网站的制作
  15. j2ee与j2se对比
  16. tensorflow——模型的保存和恢复tf.trian.saver()
  17. python培训班怎样收费
  18. python 录屏_python实现录制全屏和选择区域录屏功能代码
  19. 数据库:数据类型、数据项、数据元素、数据对象、数据结构的概念与相互之间的关系
  20. IMX6DL 在Android4.4.2版本插入SD卡不能开机

热门文章

  1. C#调用Microsoft.DirectX.DirectSound问题记录及解决
  2. c# throw抛出上一个异常
  3. 设置背景图片的两种方式,并解决手机端背景图片高度自适应问题
  4. layui table 分页 序号始终从”1“开始解决方法
  5. 【白皮书分享】2021中国女性婚恋观白皮书.pdf(附下载链接)
  6. 【报告分享】GitHub 2020数字洞察报告.pdf(附下载链接)
  7. 知识图谱盛会再度开启!洞悉KG的前沿技术与最新实践探索!!
  8. 65lbc184应用电路原理_75lbc184应用电路
  9. 微信小程序实现日历功能(附加签到、迟到、未签的状态显示)
  10. 吴恩达机器学习4——神经网络