2013-02-27 43 views
6

Đây là câu hỏi mà tôi đang cố gắng để viết trong Tiêu chí:Làm thế nào để mã truy vấn NOT IN trong tiêu chí Hibernate?

SELECT * FROM abc 
    WHERE NOT PartType IN ('0','4','5','6','7','a','b','c') 

Trên đây là trong iBatis.

Vì vậy, đây là hbm.xml cho bảng

<class name="Parts" table="SomeDb..Parts"> 
     <id name="recordNumber" column="Recnum" /> 
     <property name="partNumber" column="Partnum" /> 
     <property name="sectionNumber" column="Secnum" /> 
     <property name="articleNumber" column="Articlenum"/> 
     <property name="headerNumber" column="Headernum"/> 
     <property name="partType" column="PartType"/> 
     <property name="code" column="Code"/> 
    </class> 

Các partType là nvarchar với chiều dài của 1 trong một db SQL Server. Tôi đang cố gắng chọn các bản ghi không có loại phần nào của bất kỳ '0', '4', '5', '6', '7', 'a', 'b', 'c'. Hy vọng tôi đã trả lời câu hỏi của bạn. Cảm ơn

+0

Bạn có thể giải thích những gì bạn đang cố gắng không? Làm thế nào để bảng trông giống như kiểu dữ liệu nào có trường PartType? – rekire

Trả lời

18
Criteria criteria = ...; 
criteria.add(
    Restrictions.not(
    Restrictions.in("partType", new String[] {"0","4","5","6","7","a","b","c"}) 
) 
); 

Hy vọng điều đó sẽ hữu ích.

+0

Tôi đã làm cho nó hoạt động với điều này: \ n \t criteria.add (Expression.not (Expression.in ("paraType", Chuỗi mới [] {"0", "4", "5", "6", " 7 "," a "," b "," c "}))); \ n Tôi cũng sẽ thử giải pháp của bạn !! Cảm ơn !! – user1860447

+0

Biểu thức không được dùng nữa, bạn nên sử dụng Hạn chế thay vì được chỉ định trong câu trả lời. – overmeulen

Các vấn đề liên quan