关于hibernate中@Transient注解使用的一点心得
来源:互联网 发布:中国谁靠卖域名发财 编辑:程序博客网 时间:2024/05/06 07:52
(例): @Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
示例:
//根据birth计算出age属性
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
@Table(name="person")public class Person{ private Date birth; @Column(name = "birth") public Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } @Transient public int getAge(){ return getYear(new Date())-getYear(getBirth()); //getYear为类中的自定义方法,返回传入日期的年份 }}
上面的这个转载对@Transient的作用说的不是很清晰。
说一点个人的心得,比如上面例子在一个持久化类person中定义了birth的属性并且用了@Column注解在数据表中进行了映射,而getAge()方法注解为@Transient,表明在数据库表中并没有age这个映射字段。
当你通过字段映射从数据库获取数据时,因为getAge()加了@Transient,并且在数据库中没有字段。所以getAge()没有从数据库中获取数据,而是通过getBirth()方法获取数据库中返回的birth,并通过计算返回getAge()的值。
return getYear(new Date())-getYear(getBirth());
当你在程序中获取到持久化类person的对象时,person.getAge()和person.getBirth()都有数据返回提供给你使用。
这样做的话,能减少数据库的字段,比如这个例子中就不需要新建一个关于age的数据库字段了,通过birth字段和计算就能获取到person的age属性。@Transient还可以在持久化类中直接获取关联表中的字段值,许多业务逻辑中都有很大的作用。
个人理解,如有不足之处,望指正。
0 0
- 关于hibernate中@Transient注解使用的一点心得
- hibernate中@Transient注解使用
- hibernate的@Transient注解
- hibernate中@Transient的使用
- 在WebSphere Portal Server中使用Hibernate的一点心得
- 注解@Transient的使用
- @Transient注解的使用
- hibernate里的Transient注解
- hibernate中使用@Transient
- MFC中关于tab控件使用的一点心得
- 关于openGL中glReadPixels接口的一点使用心得
- 关于flex中IMXMLObject的一点心得
- 关于布局管理器使用的一点心得
- 关于JFig的一点使用心得
- 关于fctix使用的一点心得
- 关于VMware软件的一点使用心得
- 关于使用JScrollPane的一点心得
- 关于SSI的一点使用心得
- Linux下安装matlab
- 深拷贝和浅拷贝详解
- Cocos2dx -- 入门之 lua 调用 c++
- 通过 Spring AOP 验证方法的参数是否合法
- 编译CTK
- 关于hibernate中@Transient注解使用的一点心得
- 各种编码的由来(很通俗)
- tomcat manager the Cross Origin Resource Sharing
- Android应用系列:值得收藏的ViewHolder工具类实现
- 关于ActiveMQ的一点总结
- HDU 4734 F(x)
- Bootstrap 下拉框 按钮组、工具栏
- android webview点击返回键返回上一个html
- 安卓开发中Theme.AppCompat.Light的解决方法