使用二进制运算符mysql查询的JPQL jpa(@Query)更新列是什么?

时间:2018-08-23 09:57:22

标签: mysql spring-boot jpa jpql

SQL查询:

update de_meta set service_lines = service_lines | 5 where de_id = 20;

从SQL控制台运行正常。

JPA查询:

@Modifying
@Query("update DeMetaEntity set serviceLines = serviceLines | ?2 where deId = ?1")
void addDeServiceLineMap(Integer deId, int serviceLine);

此JPA查询引发错误,因为| (按位或)在JPQL中无效。 有什么方法可以为给定的SQL查询编写等效的JPQL?

我不想使用条件查询。当我在JAVA INTERFACE上使用它时。

1 个答案:

答案 0 :(得分:1)

按照Alan的建议创建本机查询:

@Modifying
@Query("update de_meta set service_lines = service_lines | ?2 where de_id = ?1", nativeQuery=true)
void addDeServiceLineMap(Integer deId, int serviceLine);

switch nativeQuery = true将按原样执行SQL查询。