问题
I have a property created like this in my model:
public class Client {
private Boolean active;
}
My RDBMS is Oracle and the active
column is of type NUMBER(1,0)
.
How can I use the Restrictions API to achieve the following functionality?
criteria.add(Restrictions.eq("active"),object.isActive());
回答1:
Hibernate maps the Boolean
Java type to Oracle NUMBER(1,0)
automatically.
So, you can use a Boolean
value in your entity mappings, JPQL or Criteria queries and the generated SQL will use the database NUMBER(1,0)
format instead.
回答2:
I don't recommend to use Boolean, you should use boolean instead to prevent NPE, cause boolean value just has two available values - true or false. What does it mean null for boolean?? It's a rare case when you need wrapper type Boolean. Oracle - number(1) default 0 not null.
来源:https://stackoverflow.com/questions/28865222/mapping-java-boolean-to-oracle-number-column-with-jpa-and-hibernate