Hibernate + Derby: Comparações entre 'BOOLEAN' e 'INTEGER' não são suportadas

Eu tenho um problema com a consulta do banco de dados Derby. Eu estou usando o Hibernate com JPA. Problema está relacionado (provavelmente) a colunas booleanas. Cada consulta termina com erro:

org.hibernate.exception.SQLGrammarException: Comparações entre 'BOOLEAN' e 'INTEGER' não são suportadas. Tipos devem ser comparáveis. Os tipos de string também devem ter um agrupamento correspondente. Se o agrupamento não corresponder, uma solução possível é lançar operandos para forçá-los ao agrupamento padrão (por exemplo, SELECT nome da tabela FROM sys.systables WHERE CAST (nome da tabela AS VARCHAR (128)) = 'T1')

Abaixo você pode encontrar código de exemplo e configuração. As amostras são simplificadas para facilitar a leitura. Aqui está a minha entidade JPA:

<code>@Entity
public abstract class Task implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    protected long id;

    @Column
    protected boolean deleted;

    public long getId() {
        return id;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setId(long id) {
        this.id = id;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }

    @Override
    public int hashCode() {
        return id;
    }

    @Override
    public boolean equals(Object object) {
        if (object == null) {
            return false;
        }

        if (!this.getClass().equals(object.getClass())) {
            return false;
        }

        EntityObject other = (EntityObject) object;

        if (this.id != other.id) {
            return false;
        }

        return true;
    }

    @Override
    public String toString() {
        return "EntityObject[ id=" + id + " ]";
    }
}
</code>

Minha consulta JPA:

<code>SELECT t FROM Task t WHERE deleted = false
</code>

Minha configuração do JPA:

<code><persistence-unit name="PU1" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/myapp</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
  <property name="hibernate.hbm2ddl.auto" value="update"/>
  <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
</properties>
</persistence-unit>
</code>

O que está errado? Como consertar isso? Obrigado por qualquer sugestão.

questionAnswers(4)

yourAnswerToTheQuestion