2012-04-04 7 views
0

nullパラメータを設定する私はこれ持っている:問題は、私はクエリを実行しようとしているとき、それは私に、このエラーを与えることである問題、エラーが

public interface PermessiMapper { 
final String SELECT_PERMESSI = "SELECT PR.CODICE as CODICE, PR.DESCRIZIONE as DESCRIZIONE FROM PERMISSION PR INNER JOIN USER_PERMISSION UP ON PR.CODICE=UP.PERMESSO INNER JOIN USERS US ON US.NOME_UTENTE=UP.UTENTE WHERE US.NOME_UTENTE = #{user} AND US.PASSWORD = #{password}"; 
    @Select(SELECT_PERMESSI) 
    @Results(value = { 
        @Result(property="codice", column="CODICE"), 
        @Result(property="descrizione", column="DESCRIZIONE")}) 
    public ArrayList<PermessoDTO> getPermessi(String user, String password); 
} 

を:

### Error querying database. Cause: org.apache.ibatis.type.TypeException: Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: java.sql.SQLException: invalid column name 
### The error may involve it.reply.ratingGateway.monitoringManagement.DB.PermessiMapper.getPermessi-Inline 
### The error occurred while setting parameters 
### Cause: org.apache.ibatis.type.TypeException: Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: java.sql.SQLException: Tipo di colonna non valido 

#{name}#{password}を 'xxx'や 'yyy'のような単純な文字列で変更しようとしましたが、うまく動作します。

私は、コードをデバッグすると言うこともできますが、渡している両方のパラメータがnullではないことがわかりました。

アイデア?私は最終的にそれを修正した

答えて

0

、 簡単なので、私はこのように変更しました

、それは2文字列をこのように得ることのアイデアを好きではないようだ:

public ArrayList<PermessoDTO> getPermessi(UserDTO user); 

場所UserDTOには、プロパティのユーザーとパスワードが含まれています。

Bye!