年前年后这两天一直在折腾一件事情,就是需要根据句子中的关键字查询所有包含该关键字的所有句子。
找到了一个正则表达式可以在 Navicat for MySQL中查询:
select * from sat t where t.refText REGEXP '[[:<:]]to[[:>:]]';
查询包含to的所有句子,能够查出10句,正确。
用hibernate标准查询,怎么都不对,在同事的帮助下,终于解决:
public List<Sat> findBykey(String key) {
DetachedCriteria dc = satDao.createDetachedCriteria();
dc.add(Restrictions.sqlRestriction("reftext REGEXP'[[:<:]]" + key
+ "[[:>:]]'"));
dc.addOrder(Order.desc("id"));
return satDao.find(dc);
}