当前位置: 首页 > 知识库问答 >
问题:

带强制转换的标准api表达式

卓云
2023-03-14

我是jpa的新手,需要这样的东西:

TypedQuery<XXX> typedQuery = em.createQuery("select c from XXX c where cast(c.description as string) like :name", XXX.class);
typedQuery.setParameter("name", startStr + "%");
ParameterExpression<String> parameter = builder.parameter(String.class, "name");
predicate = builder.like(root.<String>get("description"), parameter);    
query.where(builder.and(predicate));            

我能修好它吗?

共有1个答案

司马高昂
2023-03-14

您可以尝试创建自定义方言,将mvarchar类型注册为NVARCHAR。

public class MyDialect extends PostgreSQLDialect {
    registerColumnType(Types.VARCHAR, 255, "mvarchar($l)");
}

如果采用这种方式,则强制Hibernate将mvarchar列视为标准VARCHAR。

 类似资料:
  • 带有“in”表达式的JPA标准API转换为多个“OR”而不是“in” e. g. 我的主要模型 多对一关系 在持久性中定义了这两个模型。xml(注意:它没有指定任何db方言) 以下是用于构建查询的带条件API的代码: 这将以以下格式打印查询: 但我应该得到的是 环境: 托梅7.0.3 嵌入式OpenJPA Mariadb 更新: 我也试着添加如下mariadb方言,但没有帮助

  • 隐含的强制转换 隐含的 强制转换是指这样的类型转换:它们是隐藏的,由于其他的动作隐含地发生的不明显的副作用。换句话说,任何(对你)不明显的类型转换都是 隐含的强制转换。 虽然 明确的 强制转换的目的很明白,但是这可能 太过 明显 —— 隐含的 强制转换拥有相反的目的:使代码更难理解。 从表面上来看,我相信这就是许多关于强制转换的愤怒的源头。绝大多数关于“JavaScript强制转换”的抱怨实际上都

  • 明确的强制转换 明确的 强制转换指的是明显且明确的类型转换。对于大多数开发者来说,有很多类型转换的用法可以清楚地归类于这种 明确的 强制转换。 我们在这里的目标是,在我们的代码中指明一些模式,在这些模式中我们可以清楚明白地将一个值从一种类型转换至另一种类型,以确保不给未来将读到这段代码的开发者留下任何坑。我们越明确,后来的人就越容易读懂我们的代码,也不必费太多的力气去理解我们的意图。 关于 明确的

  • 问题内容: 我有一个表,该表的列为’Faktor’(varchar(50)),其中包含以下表达式: 不,我正在寻找一种执行选择的方式 它应该返回带有值的十进制类型的列 问题答案: 我会选择CLR,类似这样(它具有在基于SET的操作中工作的优势,而动态sql替代项(即Abduls答案)则不会): 编辑: CLR dll(Visual Studio 2008)的源代码发布在这里:http : //ww

  • 我正在尝试使用lambda表达式实例化一个数组。 该数组是一个“[Ljava.lang.Object;”实例 数组的每个对象都是一个“测试”实例