如何在带有 sql 语句的 querydsl 中使用 mysql 函数?
How to use mysql function in querydsl with sql statement?
数据库中的phone号码是加密的,所以我不得不使用解密功能。所以我写了这样的代码,但是没有用。我怎样才能做到?
这是我的代码
BooleanBuilder builder = new BooleanBuilder();
if(StringUtils.hasText(memberVO.getSearchTypeCd()) && StringUtils.hasText(memberVO.getSearchText())) {
if(memberVO.getSearchTypeCd().equals("memNm")) {
builder.and(info.memNm.contains(memberVO.getSearchText()));
}
if(memberVO.getSearchTypeCd().equals("nickNm")) {
builder.and(info.nickNm.contains(memberVO.getSearchText()));
}
if(memberVO.getSearchTypeCd().equals("hpNo")) {
//FN_DECRYPT is not working
builder.and(info.nickNm.prepend("FN_DECRYPT(").append(")").contains(memberVO.getSearchText()));
}
}
我想在 sql 中输入这样的内容。
WHERE FN_DECRYPT(hpNo) LIKE '%010-0000-0000%'
谢谢。
终于解决了
BooleanBuilder builder = new BooleanBuilder();
if(StringUtils.hasText(memberVO.getSearchTypeCd()) && StringUtils.hasText(memberVO.getSearchText())) {
if(memberVO.getSearchTypeCd().equals("memNm")) {
builder.and(info.memNm.contains(memberVO.getSearchText()));
}
if(memberVO.getSearchTypeCd().equals("nickNm")) {
builder.and(info.nickNm.contains(memberVO.getSearchText()));
}
if(memberVO.getSearchTypeCd().equals("hpNo")) {
builder.and(Expressions.booleanTemplate("FN_DECRYPT({0}) LIKE '%" + memberVO.getSearchText().replaceAll("-", "") + "%'", info.hpNo));
}
}
数据库中的phone号码是加密的,所以我不得不使用解密功能。所以我写了这样的代码,但是没有用。我怎样才能做到?
这是我的代码
BooleanBuilder builder = new BooleanBuilder();
if(StringUtils.hasText(memberVO.getSearchTypeCd()) && StringUtils.hasText(memberVO.getSearchText())) {
if(memberVO.getSearchTypeCd().equals("memNm")) {
builder.and(info.memNm.contains(memberVO.getSearchText()));
}
if(memberVO.getSearchTypeCd().equals("nickNm")) {
builder.and(info.nickNm.contains(memberVO.getSearchText()));
}
if(memberVO.getSearchTypeCd().equals("hpNo")) {
//FN_DECRYPT is not working
builder.and(info.nickNm.prepend("FN_DECRYPT(").append(")").contains(memberVO.getSearchText()));
}
}
我想在 sql 中输入这样的内容。
WHERE FN_DECRYPT(hpNo) LIKE '%010-0000-0000%'
谢谢。
终于解决了
BooleanBuilder builder = new BooleanBuilder();
if(StringUtils.hasText(memberVO.getSearchTypeCd()) && StringUtils.hasText(memberVO.getSearchText())) {
if(memberVO.getSearchTypeCd().equals("memNm")) {
builder.and(info.memNm.contains(memberVO.getSearchText()));
}
if(memberVO.getSearchTypeCd().equals("nickNm")) {
builder.and(info.nickNm.contains(memberVO.getSearchText()));
}
if(memberVO.getSearchTypeCd().equals("hpNo")) {
builder.and(Expressions.booleanTemplate("FN_DECRYPT({0}) LIKE '%" + memberVO.getSearchText().replaceAll("-", "") + "%'", info.hpNo));
}
}