随笔分类 -  Hibernate

摘要:最近碰到个郁闷的问题嵌套查询时UserAddress userAddress = (UserAddress) this.findOne("select new UserAddress(uuid,regionByDistrict,regionByCountry,regionByProvince,reg... 阅读全文
posted @ 2014-07-10 17:50 Bright Moon ‘ s Blog 阅读(1072) 评论(0) 推荐(0)
摘要:一次项目中使用hibernate 的templet方式执行普通sql,方式如下:String sql ="select count(*) as c from users";SQLQuery sq = session.createSQLQuery(sql);Object count = sq.uniq... 阅读全文
posted @ 2014-07-08 21:52 Bright Moon ‘ s Blog 阅读(342) 评论(0) 推荐(0)
摘要:hibernate 只需要操作对象就可以对数据库的数据进行“增删改查”。用了短时间后,感觉依旧存在很大的冗余。正因为这个,我的反射框架就出现了。因为自用,下面只贴出代码,不做解释。有兴趣的可以来看看一起研究一下,如有问题可私聊探讨。反射基类 SQLSuper/** * 给对象做反射并且定于返回H... 阅读全文
posted @ 2014-07-07 20:37 Bright Moon ‘ s Blog 阅读(462) 评论(0) 推荐(0)
摘要:Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。15.1.大小写敏感性问题除了Java类与属性的名称外,查询语句对大小写并不敏感。 所以SeLeCT... 阅读全文
posted @ 2014-07-07 17:11 Bright Moon ‘ s Blog 阅读(301) 评论(0) 推荐(0)
摘要:写WEB项目写的多了,感觉DAO层的代码太相似了,几乎写DAO的时候只要写好了一个类的DAO后另外几个类的DAO都是ctrl+C ctrl+V然后修改修改其中的参数后就完工了。前段时间无聊就去研究了下java的反射结果动态生成HQL语句的工具类就这样被我写出来了,贴上源码public class BaseDao { protected Session session; Transaction transaction; /** * 打开session并且创建事物 */ protected void open(){ if(session... 阅读全文
posted @ 2013-09-21 22:32 Bright Moon ‘ s Blog 阅读(3684) 评论(0) 推荐(0)
摘要:1)assigned主键由外部程序负责生成,无需Hibernate参与。2)hilo通过hi/lo算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。3)seqhilo与hilo类似,通过hi/lo算法实现的主键生成机制,只是主键历史状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle。4)increment主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是:如果当前有多个实例访问同一个数据库,那么由于各个实例各自维护主键状态,不同实例可能生成同 阅读全文
posted @ 2013-07-20 15:36 Bright Moon ‘ s Blog 阅读(431) 评论(0) 推荐(0)
摘要:name:映射类属性的名称;access:hibernate访问这个属性的策略table:关联的目标数据库表schema:目标数据库表的schema名字catalog:目标数据库表的catalog名字lazy:是否采用延迟加载subselect:定义一个子查询inverse:用于标识双相关联中被动的一方,一般标识一对多中一的一方设置为turesort;设置排序的类型,这个属性可以选择的值有:unsorted,不排序;natural.自然排序,也就是利用 java对象来进行排序;comparatorClass,指定某个实现了java.util.Comparator接口的类作为排序算法,注意,这里 阅读全文
posted @ 2013-07-20 15:34 Bright Moon ‘ s Blog 阅读(306) 评论(0) 推荐(0)