Oct 16
不知道大家有没有碰到,还是没有这种需求。就是用like来查询,我们没有用Lucene,Compass这种全文索引的方案,我们只是简单的添加%进行like查询。用户搜索的时候就使用*和?来代表任意和一个。所以要对"%"和"_"进行转义,我们使用的是oracle数据库。sql语句看起来可能是这样的。 Select   *   FROM  t_user  where  nickname  like   ' %Goo\_D '   escape   ' \ ' 这里对_进行转义了。因为用户昵称包含下划线,如果不进行转义就表示一个任意字符。有时候我们可能还需要对%进行转义。同样的方法在%前加\% 但是比起普通的like语句。多了一个声明转义符的语句。所以我们会想到这样的语句 DetachedCriteria criteria  =  DetachedCriteria.forClass(User. class );...

[more..]

May 30
package  com.javaeye.common.hibernate; import  java.lang.reflect.Field; import  java.sql.SQLException; import  java.util.ArrayList; import  java.util.List; import  java.util.regex.Matcher; import  java.util.regex.Pattern; import  org.apache.commons.lang.StringUtils; import  org.apache.commons.logging.Log; import  org.apache.commons.logging.LogFactory; import  org.hibernate.Criteria; import  org.hibernate.HibernateExcepti...

[more..]

May 29
上篇文章:《 今天发现一个hibernate的bug,或者说一个应该注意的地方比较合适 》里面我提到了Hibernate查询需要注意的一个问题。今天发现了一个最好的解决办法。如果大家现在用Hibernate,相信大家都回用到DetachedCriteria.关于DetachedCriteria查询请查看 http://dev.yesky.com/241/2033241.shtml 。       DetachedCriteria给我们的Hibernate查询带来了很多方便,但是如果你带上排序信息就会出现我的上一篇文章里面说的那种错误,今天发现一个很好的解决方法,其实也很简单。就是先把传入的带Order信息的DetachedCriteria去掉order信息查询数据总条数,然后再把Order加回来查询满足条件的对象。通过查看Hibernate的源代码发现Criteria的实现CriteriaImpl发现其实addOrder是给private List orderEntries = new ArrayList();这个List加值。这个List里面放的是OrderEnt...

[more..]

May 26
现在的系统中虽然使用了。Hibernate但是没有使用Hibernate的关联关系来进行数据库操作。所有的管理操作都是单独实现的。所以也不能用Criteria.add()这种方式去查询关联的一方。所以只能用Native SQL去查询结果返回对象了。按照Hibernate3的reference里面说的 16.1.?使用 SQLQuery 对原生SQL查询执行的控制是通过 SQLQuery 接口进行的,通过执行 Session.createSQLQuery() 获取这个接口。最简单的情况下,我们可以采用以下形式: List cats = sess.createSQLQuery("select * from cats") .addEntity(Cat.class) .list(); 这个查询指定了: SQL查询字符串 查询返回的实体 这里,结果集字段名被假设为与映射文件中指明的字段名相同。...

[more..]

May 21
今天把myblog用sql server部署了一下,可是发现分页查询的时候出现错误,看控制台报错说语句有错,由来发现分页的时候先查询总记录数目的那条语句出错了 select   count ( * )  as  y0_  from  myblog_Blog this_  inner   join  myblog_Blog_Category categories3_  on  this_.id = categories3_.blogId  inner   join  myblog_Category category1_  on  categories3_.categoryId = category1_.id  where  category1_.id = ?  order   by ...

[more..]