我正在尝试使此查询在JPA中起作用:
SELECT * FROM contrat WHERE contrat_json @> '{"nom" :"hever"}';
Run Code Online (Sandbox Code Playgroud)
它可以完美地工作,postgresql但是当我将其与JPA集成时,会出现以下错误:
该位置[1]的参数不存在
我的代码:
@Transactional
@Query(nativeQuery = true,value = "select p from Contrat p where contrat_json @> '{\"nom\":\":nom\"}'")
public List<Contrat> findByNomRestrict(@Param("nom") String nom);
Run Code Online (Sandbox Code Playgroud)
我认为@>尽管进行了本地查询仍无法识别,您有想法吗?
我被迫进入一种情况,在这种情况下,我正在使用休眠createNativeQuery返回对象数组列表。
我的查询从中返回值的(许多)列之一是CLOB。
返回的对象是com.sun.Proxy对象。
我已经看到了问题,这里 那里
getClass().getInterfaces()
Run Code Online (Sandbox Code Playgroud)
用于标识它是返回的WrappedClob。
但是,鉴于我的Java代码中现在已有此代理对象,如何将其转换为有用的东西(如字符串)?