2015-03-04 15 views
7

benim modelinde böyle oluşturulan bir özelliği vardır Hazırda:Haritalama Java JPA Oracle Numarası kolona boolean ve

public class Client { 
     private Boolean active; 
} 

Benim RDBMS Oracle ve active kolon tipi NUMBER(1,0) taşımaktadır.

Aşağıdaki işlevleri gerçekleştirmek için Restrictions API'yi nasıl kullanabilirim?

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

cevap

12

hazırda otomatik Oracle NUMBER(1,0)-Boolean Java tipini eşler.

Böylece, eşlem eşlemelerinizde, JPQL veya Kriterler sorgularında bir Boolean değeri kullanabilir ve oluşturulan SQL veritabanı NUMBER(1,0) biçimini kullanır.

+0

Merhaba Vlad, haklısınız, cevabınız için teşekkürler. –

1

Boolean'ı kullanmamanı öneririm, NPE'yi önlemek için boolean kullanmalısınız, boolean değerinin yalnızca iki kullanılabilir değere sahip olmasına neden olabilir - doğru veya yanlış. Boolean için null ne anlama geliyor? Sarıcı türü Boolean'a ihtiyaç duyduğunuzda nadir bir durumdur. Oracle - sayı (1) varsayılan 0 değil boş.

+2

Null Boolean bilinmeyen veya belirtilmemiş anlamına gelebilir. Her zaman bu ayrıma ihtiyacın olduğunu söylememek. –

+0

Bu durumda, buna uygun Enum kullanmalısınız. Boole, doğru ya da yanlış, daha fazla bir şey anlamına gelir. Üçüncü duruma ihtiyacınız varsa - enum kullanın. – idmitriev