码迷,mamicode.com
首页 > 数据库 > 详细

hibernate access访问持久化类属性的策略

时间:2014-10-29 10:37:06      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:http   io   ar   java   sp   文件   div   on   art   

<property>元素的access属性用法: 
access有两个可选的值: 
1,property:这是默认值,表明hibernate通过set和get方法来访问类的属性。这是优先的推荐方式。你必须为这个属性设置get和set方法,hibernate才能访问到。否则会报错的。 
2,field:表明hibernate通过java的反射机制直接访问类的属性。你可以不给这个属性设置get和set属性。 

这个属性在我们拼凑用户名的时候很有效。如下示例: 

Java代码  bubuko.com,布布扣
  1. public class Customer implements Serializable {  
  2.   
  3.     /** 
  4.      *  
  5.      */  
  6.     private static final long serialVersionUID = 1L;  
  7.   
  8.     private String firstname;  
  9.     private String lastname;  
  10.   
  11.     public String getName() {  
  12.         return firstname + " " + lastname;  
  13.     }  
  14.   
  15.     public void setName(String name) {  
  16.         StringTokenizer t = new StringTokenizer(name);  
  17.         firstname = t.nextToken();  
  18.         lastname = t.nextToken();  
  19.     }  
  20.   
  21. }  


在该类的持久化映射文件中无需配置firstname和lastname属性,而需要映射name属性,因为我们最终要得到的是完整的name。 

Java代码  bubuko.com,布布扣
  1. <property name="name" column="NAME" />  


尽管在Customer类中没有定义name属性,由于hibernate不会直接访问name属性,而是通过setName和getName来访问的。不管在Customer类中是否存在name属性,只要在映射文件中映射了name属性,HQL就能访问到它,相反,firstname和lastname属性在映射文件中没有配置映射,所以HQL中是不能访问到这两个属性的。 

hibernate access访问持久化类属性的策略

标签:http   io   ar   java   sp   文件   div   on   art   

原文地址:http://www.cnblogs.com/csy8fs/p/4058750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!