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

如何在JPQL中检查UUID空值?

邢杰
2023-03-14
  @Query("select a from Attribute a where :attributeId is null OR a.id = :attributeId")
  Page<Attribute> findByAttributeId(@Param("attributeId") UUUID attributeId);
    null

JPQL中是否存在检查UUID空值的问题?

共有1个答案

邢焱
2023-03-14

在网上查了一下之后,我找到了解决办法。由于PostgreSQL不能确定dataType,我们可以将它声明为TypedParameterValue。

TypedParameterValue attributeId = new TypedParameterValue(PostgresUUIDType.INSTANCE, UUIDUtil.toUUID(attributeId));
Page<Attribute> attributes = attributeRepo.findByAttributeId(attributeId);

然后在JPQL中,对于nullChecking,转换为org.hibernate.type.PostGresuuidType:
(在IDE中,它可以显示为error,但实际上是编译的)

 @Query("select a from Attribute a where (cast(:attributeId as org.hibernate.type.PostgresUUIDType) OR a.id = :attributeId)")
 Page<Attribute> findByAttributeId(@Param("attributeId") TypedParameterValue attributeId);

在本机查询中:

 @Query(value = "select * from attribute a where (cast(:attributeId as uuid) OR a.id = :attributeId)",nativeQuery = true)
 List<Attribute> findByAttributeId(@Param("attributeId") TypedParameterValue attributeId);
 类似资料:
  • 问题内容: 如何在JavaScript中检查空值?我在下面编写了代码,但是没有用。 在JavaScript程序中如何找到错误? 问题答案: JavaScript在检查“空”值方面非常灵活。我猜您实际上是在寻找空字符串,在这种情况下,这种简单的代码将起作用: 这将检查空字符串(), ,, 以及数字和 请注意,如果您专门检查数字,则使用此方法时常会犯错,对于返回的函数,它是首选(或(或(也检查了错误代

  • 问题内容: 我正在写一个JPQL查询,它基于 Categories 集合进行查询。我的类别可以为空,因此我正在使用:categories = NULL进行检查。 当类别为NULL时,以上方法可以正常工作。但是,当类别超过一个值时,我得到了错误 java.sql.SQLException:操作数应包含1列 与hibernate有关的痕迹是 (?,?)或(?,?)中的category6_.catego

  • 下面的代码引发NullPointerException。即使有

  • 我有一个查询来确定一个值是否已经存在于数据库中。在将资源插入数据库之前,我用它来验证资源。看起来是这样的: 在数据访问上,实现如下: 它确实有效并完成工作,但是我认为query.getResultList(.isEmpty()不是我需要的正确语法,而且我希望让它更快,并在找到值后返回,而不是循环遍历数据库上的每一行。任何建议将不胜感激。

  • 我定义了一个结构… 有时我给它分配一个空会话(因为不可能为零) 然后我想检查一下,如果它是空的: 显然这是行不通的。我怎么写?

  • 我不想使用操作系统命令,因为这使它依赖于操作系统。 这在< code>tarfile、< code > tarfile . is _ tarfile(filename)中可用,用于检查文件是否为tar文件。 我无法在模块中找到任何相关命令。 编辑:为什么我需要这个:我有gzip文件列表,这些文件的大小各不相同(1-10 GB),有些是空的。在读取文件之前(使用),我想检查文件是否为空,因为对于空文