私はOracleデータベース内の文字列を分音記号で検索したいとします。つまり、 "o"を入力して "o"と "o"、 "ö"または "ô"を検索します。
は、私は次のようにベースレター演算子[==]とネイティブSQLでREGEXP_LIKE()関数でそれを行うことができます。querydslでoracle REGEXP_LIKE()を使用するには?
where REGEXP_LIKE(<column_name>,'[[=o=]]')
はしかし、今、私はQueryDSLでそれを行う方法を知りません。私は@https://github.com/querydsl/querydsl/issues/1713というソリューションを試しましたが、成功しませんでした。
現在のコードは次の通りです:
はreturn new JPAQuery<AEntity>(em)
.from(QAEntity.aEntity)
.where(Expressions.booleanTemplate("REGEXP_LIKE({0}, {1})", QAEntity.aEntity.name, "[[=o=]]"))
.orderBy(QAEntity.aEntity.name.asc())
.fetch();
それはそのような例外をスロー:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected AST node: (near line 3, column 18 [select aEntity
from domain.AEntity aEntity
where REGEXP_LIKE(aEntity.name, ?1)
order by aEntity.name asc]
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:74)
at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:91)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:268)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:190)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:115)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:76)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:302)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:240)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1894)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:291)
... 123 common frames omitted
は、誰もがいくつかのアイデアを提案してくださいことはできますか?
@MichaelPiankovに感謝しましたが、エラーはまだ同じです – doannx
私は間違いを@doannxします。ありがとうございました。私は正しい答えを加える。 –
私はあなたの編集を試みましたが、残念ながら、エラーは引き続き次のようになっています:原因:org.hibernate.hql.internal.ast.QuerySyntaxException:予期しないASTノード:3行目、7列目の関数[REGEXP_LIKE] [select aEntity domain.AEntity aEntity function( 'REGEXP_LIKE'、aEntity.name、?1) order by aEntity.name asc] \t at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:74) \t at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:91)... ' – doannx