为什么80%的码农都做不了架构师?>>>   

欢迎加入JPA讨论群:234134357

JPA的生命周期时间可以分为4类:持久化,更新,删除和加载。在系统中我们便可以利用回调函数触发指定事件执行特定操作,例如需要区分对象是否为新建。如下:

@Component
@Scope("prototype")
@Entity(name = "_User")
public class User implements Serializable{private static final long serialVersionUID = 1417900800633538392L;// 业务属性private String name, phoneticCode;private String loginName, password;// 数据持久相关的辅助属性private String id;private Date createdTime;private int objectVersion;@Id@Column(length = 40)public String getId() {return id;}public void setId(String id) {this.id = id;}@Column(nullable = false)public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Column(length = 30, nullable = false, unique = true)public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName = loginName;}@Column(length = 30, nullable = false)public String getName() {return name;}public void setName(String name) {this.name = name;}/*** 拼音码* * @return */@Column(length = 20)public String getPhoneticCode() {return phoneticCode;}public void setPhoneticCode(String phoneticCode) {this.phoneticCode = phoneticCode;}@Temporal(TemporalType.TIMESTAMP)public Date getCreatedTime() {return createdTime;}public void setCreatedTime(Date createdTime) {this.createdTime = createdTime;}@Versionpublic int getObjectVersion() {return objectVersion;}public void setObjectVersion(int objectVersion) {this.objectVersion = objectVersion;}/*** 使用回调函数验证以及创建默认必要属性*/@PrePersist@PreUpdatepublic void dataCompleted() {if (StringUtil.isEmpty(id)) {setId(UUID.randomUUID().toString());}if (null == getCreatedTime()) {setCreatedTime(new Date());}setPhoneticCode(PinYinTool.getPinYinCode(name));}}

我们将id的 创建时间等赋值操作交给回调函数处理,该函数只有在持久或更新之前才会被调用所以我们可以通过实体是否具有id来区分对象是否属于新建

转载于:https://my.oschina.net/maymin/blog/63997

JPA2.0回调函数的使用相关推荐

  1. 【校招面试 之 C/C++】第15题 C 回调函数

    转自:https://segmentfault.com/a/1190000008293902 做略微改动 什么是回调函数 我们先来看看百度百科是如何定义回调函数的: 回调函数就是一个通过函数指针调用的 ...

  2. C++函数指针与回调函数

    [转自]cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 今天讨论下C/C++中的回调函数. 在理解"回调函数& ...

  3. C++之指针探究(十五):回调函数应用之qsort排序

    相关博文:C++之指针探究(十三):函数指针数组 相关博文:C++之指针探究(十二):指针.下标.数组及其作函数参数探究 相关博文:C++之指针探究(十一):函数名的本质和函数指针 相关博文:C++之 ...

  4. cocos2dx[3.2](11)——新回调函数std::bind

    [唠叨] 自从3.0引用了C++11标准后,回调函数采用的新的函数适配器:std::function.std::bind. 而曾经的回调函数menu_selector.callfunc_selecto ...

  5. 函数指针 回调函数 面向对象风格的C语言

    这篇文章的所有代码都是用C实现的,这是由于C没有面向对象的特性,所以我希望用函数指针把C的结构体弄得有一点面向对象的感觉. 先介绍函数指针.回调函数,然后用C结合回调函数实现一个有面向对象风格的链表 ...

  6. 【C语言】用回调函数实现冒泡排序

    (一)什么是回调函数呢? 回调函数就是通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数. (二)回调函数的实现机制 ...

  7. C#:使用海康SDK解码回调函数DecCallbackFUN()

    简述   使用海康摄像头采集图像时,需要在图像上添加图标.文字等额外数据.可选择使用海康SDK绘图回调函数叠加字符.图像等(请参考上一篇文章):也可使用海康SDK的解码回调函数,对视频流数据进行解码后 ...

  8. C语言基础10——指针进阶。字符指针、指针数组、数组指针、函数指针、函数指针数组、回调函数、数组名详解、杨氏矩阵、字符串旋转

    目录 字符指针 指针数组 数组指针 数组传参.指针参数 函数指针 函数指针数组 指向函数指针数组的指针 回调函数 练习 数组名的意义 指针笔试题 字符指针 字符指针的另一种使用方式 #include ...

  9. 使用dshow抓取摄像头数据时,回调函数时间为0的问题

    在使用dshow抓取摄像头数据,调用dshow的回调函数,如果发现SampleTime一直为0,如下图 那极有可能是使用RenderStream函数连接Filter时,指定的第一个参数为 PIN_CA ...

最新文章

  1. MySQL解压版配置
  2. mySql的case when用法
  3. Django资源大全
  4. 信用评分卡模型的理论准备
  5. 学习笔记(二)——直方图均衡化和匹配
  6. 深入理解InnoDB(3)—索引的存储结构
  7. [Leetcode][第63题][JAVA][不同路径2][动态规划][压缩路径]
  8. python 导入数据对不齐_[Python] 大文件数据读取分析
  9. 新型智慧讲台的人工智能
  10. 初识Flink广播变量broadcast
  11. 面向对象类设计的五大原则(一)单一职责原则Single Responsibility Principle
  12. [搜片神器]使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
  13. POSTMAN中文版本
  14. mysql用户配额_Oracle 用户对表空间配额quota说明
  15. 【年中总结】与自己来一场博弈,带着温柔与敌意。
  16. 前端调用后台验证码接口
  17. Android 项目必备(三十八)-->APP 消息推送
  18. A/B Problem(大数)
  19. 评分卡:WOE、IV、PSI计算及ROC和KS曲线
  20. 为了让师妹20分钟学会canvas,我熬夜苦肝本文外加一个小项目【❤️建议收藏❤️】

热门文章

  1. oracle导入dmp报无效的sql,oracle施用pl/sql导入数据库备份文件dmp导入失败原因
  2. Matlab学习笔记——二进制文件的读写
  3. 【 Verilog 】always@()的敏感源中为什么不能双边沿触发?为什么不能双时钟触发?
  4. 【 FPGA 】Vivado和ISE设计流程比较(重点是Vivado IDE)
  5. 离散时间复指数序列的周期性质
  6. 星巴克和阿里“结婚”,这后面真的不简单
  7. 洛谷 P2415 集合求和【数学公式/模拟】
  8. tomcat的jdbc连接池PoolExhaustedException
  9. mysql 常用操作命令
  10. java File类笔记