Java 此sql查询的jpql等效项(来自国家字符的查询)

Java 此sql查询的jpql等效项(来自国家字符的查询),java,sql,hibernate,jpa,jpql,Java,Sql,Hibernate,Jpa,Jpql,我有一个sql查询,它可以在sql server查询窗口上正常工作并返回结果 sql查询: select * from table1 where title = N'تست' 如果我在sql中的查询中输入'N',查询将得到结果,如果我不输入'N',则不会返回任何结果 问题是如何以jpql格式(使用“N”)进行此查询 感谢您的回复请尝试设置此Hibernate属性: hibernate.connection.defaultNChar=true 如果使用外部数据源(像HikariCP这样的外部连

我有一个sql查询,它可以在sql server查询窗口上正常工作并返回结果

sql查询:

select * from table1 where title = N'تست'
如果我在sql中的查询中输入'N',查询将得到结果,如果我不输入'N',则不会返回任何结果

问题是如何以jpql格式(使用“N”)进行此查询


感谢您的回复

请尝试设置此Hibernate属性:

hibernate.connection.defaultNChar=true
如果使用外部数据源(像HikariCP这样的外部连接池),则需要在


如果以“from where title=:title”的形式给出查询,那么jpql查询是否给出了正确的结果?并使用setParameter(title,“تتت”)(不带N个字符)?当我使用这个jpql时,我没有得到任何结果:从a中选择a,其中a.title='تتتتتت尝试@Vladmichea的解决方案-因此线程主要讨论性能问题。这个问题似乎与假设title列是nvarchar列(而不是varchar)的无效结果有关。我理解错了吗?这个视图解决方案听起来很有趣。还有一个Hibernate用户类型可能很方便。我已经设置了这个设置,但不适合我。目前,我已经通过将数据库的排序规则更改为波斯语解决了这个问题,因为jdbc的sql驱动程序有一些问题。无论如何,在我参与的大多数项目中,我们都将数据库设置为UTF8,并且web服务器编码也是UTF8。
   sendStringParametersAsUnicode=true