Native query with named parameter fails with “Not all named parameters have been set”

后端 未结 6 552
囚心锁ツ
囚心锁ツ 2020-11-27 17:13

I want to execute a simple native query, but it does not work:

@Autowired
private EntityManager em;

Query q = em.createNativeQuery(\"SELECT count(*) FROM my         


        
6条回答
  •  日久生厌
    2020-11-27 18:01

    After many tries I found that you should use createNativeQuery And you can send parameters using # replacement

    In my example

    String UPDATE_lOGIN_TABLE_QUERY = "UPDATE OMFX.USER_LOGIN SET LOGOUT_TIME = SYSDATE WHERE LOGIN_ID = #loginId AND USER_ID = #userId";
    
    
    Query query = em.createNativeQuery(logQuery);
    
                query.setParameter("userId", logDataDto.getUserId());
                query.setParameter("loginId", logDataDto.getLoginId());
    
                query.executeUpdate();
    

提交回复
热议问题