2014-10-11 2 views
0

다른 표에있는 값에 대해 하나의 표 기본에 값을 삽입하려고합니다.
Hibernate에서 다른 테이블의 테이블 기반에 값을 삽입하는 방법은 무엇입니까?

  1. 사용자 :
    예를 들어 우리는 두 테이블이 (컬럼 : 아이디, USER_NAME, CURRENT_BALANCE)를
  2. 역사 (열 : ID 266 평형) 그래서

기록을 삽입 to History 테이블 사용자 테이블에서 'current_balance'를 가져 와서 값 및 기록 테이블을 삽입하려고합니다.

이 내 삽입 문 코드 :

Query query = getSession().createSQLQuery("INSERT INTO History (user_id, balance) 
              VALUES (:userId, :balance)"); 
query.setParameter("userId", userIdValue); 
query.setParameter("balance", balanceValue)  
query.executeUpdate(); 

내가 Hibernate에서 사용자 테이블에서 'CURRENT_BALANCE'를 취하기 위해 변경해야?

답변

1

중첩 된 SELECT 쿼리가 잘 작동합니다

감사합니다 :

Query query = getSession().createSQLQuery("INSERT INTO History (user_id, balance) 
              VALUES (:userId, (SELECT current_balance FROM Users WHERE id = :userId))"); 
query.setParameter("userId", userIdValue); 
query.executeUpdate(); 

이 귀하의 예제 (SQL)의 수정 된 버전입니다. 당신은 당신이 HQL에 의해 이것을하고 싶다고 언급 했습니까? 그렇다면 HQL은 이 아닌 INSERT INTO ... VALUES만을 지원하기 때문에 가능한지 확신 할 수 없습니다. this StackOverflow question을 참조하십시오.

관련 문제