hibernate 学习知识总结
1.最近用hibernate 学会很多知识,总结如下:
(1)数据库表格已经设置默认值,在进行数据插入的时候,bean里面不赋值的话,插入之后该字段依旧是null
<property name="account" type="java.lang.String" insert="false"> <column name="account" length="100" /> </property>
加入insert="false" 就可以使它插入时不再对该字段进行操作,此值默认为true。同理update
(ii)注释方式:
@Column(insertable=false) public Integer getOrderNo() { return orderNo; } public void setOrderNo(Integer orderNo) { this.orderNo = orderNo; }
以下是他人总结内容(原帖地址:http://blog.csdn.net/xzknet/article/details/3905741)
2)<property>元素 update属性:设置为false,在update语句中不包含这个字段,表示永远不会被修改,默认true
3)<class>元素 mutable属性:设置为false就是把所有的<property>元素的update属性设置为了false,说明这个对象不会被更新,默认true
4)<property>元素 dynamic-insert属性:设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句当中.默认false
5)<property>元素 dynamic-update属性,设置为true,表示更新一个对象时,会生成动态SQL,当属性值发生变化时,才会包含到UPDATE语句中。 默认false
6)<class>元素 dynamic-insert属性:设置为true,表示把所有的<property>元素的dynamic-insert属性设置为true,默认false
7)<class>元素 dynamic-update属性:设置为true,表示把所有的<property>元素的dynamic-update属性设置为true,默认false
Disjunction disjunction = Restrictions.disjunction(); Criterion cirterion = Restrictions.sqlRestriction("SIMULPORTCAPACITY<SIMULPORTCAPACITYOCUPIED".toLowerCase()); disjunction.add(cirterion); cirterion = Restrictions.sqlRestriction("ADSLPORTCAPACITY<ADSLPORTCAPACITYOCCUPIED".toLowerCase()); disjunction.add(cirterion); cirterion = Restrictions.sqlRestriction("LANPORTCAPACITY<LANPORTCAPACITYOCCUPIED".toLowerCase()); disjunction.add(cirterion); // ONU端口,至少要录入一种端口 Conjunction conjunction = Restrictions.conjunction(); cirterion = Restrictions.eq("lanportcapacity", 0); conjunction.add(cirterion); cirterion = Restrictions.eq("simulportcapacity", 0); conjunction.add(cirterion); cirterion = Restrictions.eq("adslportcapacity", 0); conjunction.add(cirterion); disjunction.add(conjunction); queryCriteria.add(disjunction); }
构造出的sql语句如下:
select * from aaaa this_ where (simulportcapacity < simulportcapacityocupied or adslportcapacity < adslportcapacityoccupied or lanportcapacity < lanportcapacityoccupied or (this_.LANPORTCAPACITY = ? and this_.SIMULPORTCAPACITY = ? and this_.ADSLPORTCAPACITY = ?))
List cats = sess.createCriteria(Cat.class) .add(Restrictions.like("name","Fritz%")) .add(Restrictions.between("weight",minWeight,maxWeight)) .list();
可以使用org.hibernate.criterion.Order来为查询结果排序.
List cats = sess.createCriteria(Cat.class) .add(Restrictions.like("name","F%") .addOrder(Order.asc("name")) .addOrder(Order.desc("age")) .setMaxResults(50) .list();
(未完)
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。