使用JPA和Hibernate将Java布尔值映射到Oracle Number列

我在模型中创建了一个这样的属性:

    public class Client {
        private Boolean active;
}

我的 RDBMS 是 Oracle,该列的类型为 。activeNUMBER(1,0)

如何使用限制 API 实现以下功能?

criteria.add(Restrictions.eq("active"),object.isActive());

答案 1

Hibernate 自动将 Java 类型映射到 Oracle。BooleanNUMBER(1,0)

因此,您可以在实体映射、JPQL 或条件查询中使用值,生成的 SQL 将改用数据库格式。BooleanNUMBER(1,0)


答案 2

我不建议使用布尔值,你应该使用布尔值来防止NPE,因为布尔值只有两个可用值 - 真或假。布尔值的空是什么意思??当您需要包装器类型布尔值时,这是一种罕见的情况。Oracle - number(1) 默认 0 不为 null。


推荐