:
:
List<UserDTO> userDTOList = signUpBusiness.getUserDTODetails("k", "p");
コールこの方法
public List<UserDTO> getUserDTODetails(String firstMatch, String secondMatch) {
List<UserDTO> userDTOList = new ArrayList<UserDTO>();
Session session = null;
try {
session = SessionFactoryFpf.getCurrentSession();
Criteria criteria = session.createCriteria(User.class);
//MatchMode matchMode = MatchMode.ANYWHERE;
//criteria.add(Restrictions.like("id", firstMatch, matchMode));
criteria.add(Restrictions.like("id", "%"+firstMatch+"_"+secondMatch+"%"));
List<User> userList = criteria.list();
if (userList.size() > 0) {
for (User user : userList) {
UserDTO userDTO = new UserDTO();
userDTO.setId(user.getId());
userDTO.setDob(user.getDob());
userDTO.setFullName(user.getFullName());
userDTO.setGender(user.getGender());
userDTO.setEmail(user.getEmail());
userDTOList.add(userDTO);
}
}
} catch (Exception e) {
e.printStackTrace();
LOG.error("Type of exception occured in getUserDTODetails() is --> "+e);
} finally {
SessionFactoryFpf.closeSession(session);
}
return userDTOList;
}
もう一つの方法は、上記の方法でコメントを切り替える:select * from users where id like '%k_p%';
In Hibernate
ここでは解決策があります
MatchMode matchMode = MatchMode.ANYWHERE;
criteria.add(Restrictions.like("id", firstMatch, matchMode));
//criteria.add(Restrictions.like("id", "%"+firstMatch+"_"+secondMatch+"%"));
[ESCAPE文字](http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html#operator_like)を指定することができます。たとえば、LIKE '%k | _p%' ESCAPE '|' 。 – wisefish