내 단위 테스트가이 쿼리에 적합하지만 로컬에서 내 앱을 실행할 때 열 판매자를 찾지 못합니다.단위 테스트를 위해 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의 동일한 오프라인 데이터베이스에서 실행되기 때문에 유일한 차이점은 단위 테스트 대신 앱을 통해이 쿼리를 실행한다는 것입니다.
나에게 다르게? – proppy
열이 없습니다. (seller.id) –
모든 열 이름이 '동영상'과 '판매자'에서 모두 고유합니다. 즉, 'id'라는 열이 두 개 없다고 확신합니까? 공유 열 이름이 있으면'select *'를 사용할 수없고'select *'는 가능한 한 피해야합니다. – crowne