2013-04-21 1 views
0

Vaadin을 처음 사용하고 SqlContainer를 사용하려고했습니다. MySQL 데이터베이스 연결 작업을 관리했습니다. 같은 용기에SqlContainer 필터 대/소문자 구분 Vaadin

import java.io.Serializable; 
import java.sql.SQLException; 

import com.vaadin.data.util.sqlcontainer.SQLContainer; 
import com.vaadin.data.util.sqlcontainer.connection.JDBCConnectionPool; 
import com.vaadin.data.util.sqlcontainer.connection.SimpleJDBCConnectionPool; 
import com.vaadin.data.util.sqlcontainer.query.TableQuery; 
import com.vaadin.data.util.sqlcontainer.query.generator.filter.QueryBuilder; 
import com.vaadin.data.util.sqlcontainer.query.generator.filter.StringDecorator; 

public class DatabaseHelper implements Serializable { 
    private JDBCConnectionPool connectionPool = null; 
    private SQLContainer credentialContainer= null; 

    public DatabaseHelper() { 
     initConnectionPool(); 
    } 

    private void initConnectionPool() { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      connectionPool = new SimpleJDBCConnectionPool(
        "com.mysql.jdbc.Driver", 
        "jdbc:mysql://localhost:3306/vaadin", "root", "mysqlpass", 
        2, 10); 
      initContainers(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 


    private void initContainers() { 
     try { 
      /* TableQuery and SQLContainer for personaddress -table */ 
      QueryBuilder.setStringDecorator(new StringDecorator("`","`")); 
      TableQuery q1 = new TableQuery("credentials", connectionPool); 
      q1.setVersionColumn("version"); 
      credentialContainer= new SQLContainer(q1); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

    public SQLContainer getcredentialContainer(){ 
     return credentialContainer; 
    } 

} 

그럼 내가 사용한 필터 :

credentialcontainer.removeAllContainerFilters(); 
credentialcontainer.addContainerFilter("username", username.getValue(), false, true); 

그러나, 문제는 내가 필터가 경우에도 무시되는 것으로 나타났습니다 즉 여기에 연결과 컨테이너 코드는 내가 ignoreCase 매개 변수를 false로 설정할 때.

누군가가 버그인지 또는 내가 잘못했는지 알고 있습니다. 참고 : OS X을 사용하고 로컬 MYSQL 서버를 실행 중입니다.

+0

이제 해결되었습니다. Vaadin SqlContainer에서 문제가 발생하지 않았습니다. MYSQL의 기본 콜레이트 때문에 비교가 대소 문자를 구별하지 않는다는 것을 알지 못했습니다. – Thinker

답변

0

이제 해결되었습니다. 문제는 Vaadin SqlContainer에서 발생하지 않았습니다. MYSQL의 기본 콜레이트 때문에 비교가 대소 문자를 구별하지 않는다는 것을 알지 못했습니다.

관련 문제