0

私はこれを持っています:

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}「xxx」や「yyy」などの単純な文字列でandを変更しようとしましたが、#{password}問題なく動作します。

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

何か案は?

4

1 に答える 1

0

私はついにそれを修正しました、それは単純にこの方法で2つの文字列を取得するという考えが好きではないようです、

だから私はこのように変更しました:

  public ArrayList<PermessoDTO> getPermessi(UserDTO user);

ここで、UserDTOにはプロパティuserとpasswordが含まれています。

さよなら!

于 2012-04-05T07:36:17.907 に答える