2016-06-06 1 views
0

와 OrientDB 업데이트 쿼리를 작성하는 방법 :이 업데이트 방법을 실행하고 나는 IllegalArgumentException을받을 경우내가 저장소 및 업데이트 방법이 어떻게 봄 데이터

public interface TestRepo extends OrientObjectRepository<Test> 
{ 
    @Query("UPDATE Test t SET t.a = :a WHERE t.b = :b") 
    void updateTest(
      @Param("b") String b, @Param("a") int a); 
} 

. OrientDb에 대한 내 쿼리가 잘못되었을 가능성이 큽니다. 스프링 데이터로 업데이트 쿼리를 작성하는 방법에 대한 자습서가 있습니까?

답변

1

당신은합니다 (t 변수를 제거하여) 이런 식으로 쿼리를 변경을 시도 할 수 있습니다 :

UPDATE Test SET a = :a WHERE b = :b 

수정 됨을

이 방법으로 @Modifying(clearAutomatically = true)을 추가 할 수 있습니다

@Modifying(clearAutomatically = true) 
@Query("UPDATE Test t SET t.a = :a WHERE t.b = :b") 
void updateTest(
     @Param("b") String b, @Param("a") int a); 

희망 하시겠습니까?

+0

불행히도 그것은 나를 위해 작동하지 않습니다 –

+0

안녕하세요 @ Orest,'a'와'b'는 클래스의 필드 이름입니까? – LucaS

+0

예 int 두 개의 필드가 있습니다. 및 문자열 b; –

관련 문제