2013-03-25 1 views
0

내 단위 테스트가이 쿼리에 적합하지만 로컬에서 내 앱을 실행할 때 열 판매자를 찾지 못합니다.단위 테스트를 위해 GAE 쿼리가 작동하지만 로컬 테스트는 수행되지 않습니다.

String statement = "SELECT * FROM " + TABLE_NAME + " " 
+ "INNER JOIN " + DbSeller.TABLE_NAME + " seller ON video.seller = seller.id " 
+ "WHERE video.name LIKE ?";   
//create statement 
PreparedStatement stmt = DataBase.getInstance().prepareStatement(statement);   
//set data 
stmt.setString(1, "%" + s + "%"); 
//send query 
ResultSet rs = stmt.executeQuery(); 
//the result 
while(rs.next()) {   
    Video v = new Video(); 
    System.out.println("test === " + rs.getInt("seller.id")); // <---- EXCEPTION (Column not found!!!!) 
    set(rs, v);   
    listVideo.add(v);   
} 
stmt.close(); 

그리고 내가 대신이 작업을 수행 할 경우, 괜찮 :

String statement = "SELECT video.*, seller.id as seller_id FROM " + TABLE_NAME + " " 
+ "INNER JOIN " + DbSeller.TABLE_NAME + " seller ON video.seller = seller.id " 
+ "WHERE video.name LIKE ?";   
//create statement 
PreparedStatement stmt = DataBase.getInstance().prepareStatement(statement);   
//set data 
stmt.setString(1, "%" + s + "%"); 
//send query 
ResultSet rs = stmt.executeQuery(); 
//the result 
while(rs.next()) {   
    Video v = new Video(); 
    System.out.println("test === " + rs.getInt("seller_id")); // <---- NO EXCEPTION 
    set(rs, v);   
    listVideo.add(v);   
} 
stmt.close(); 

주 (내가 끝나는 내가 필요한 정보 열을 기준으로 열을 쓰고 싶지 않아 그냥 시험) : 내 애플 MySQL의 동일한 오프라인 데이터베이스에서 실행되기 때문에 유일한 차이점은 단위 테스트 대신 앱을 통해이 쿼리를 실행한다는 것입니다.

+0

나에게 다르게? – proppy

+0

열이 없습니다. (seller.id) –

+0

모든 열 이름이 '동영상'과 '판매자'에서 모두 고유합니다. 즉, 'id'라는 열이 두 개 없다고 확신합니까? 공유 열 이름이 있으면'select *'를 사용할 수없고'select *'는 가능한 한 피해야합니다. – crowne

답변

-1

열 이름 seller_id (밑줄) 및 seller.id (점) 예외가 무엇을 던진되고

+0

단지 테스트를 위해 내가 먼저 작동하고 싶습니다, 코멘트 "Exception" –

관련 문제