+

Search Tips   |   Advanced Search

EJB Query Null value semantics


The following describe the semantics of NULL values.


Table 1. Null value semantics

AND True False Unknown
True True False Unknown
False False False False
Unknown Unknown False Unknown


Table 2. Null value semantics

OR True False Unknown
True True True True
False True False Unknown
Unknown True Unknown Unknown


Table 3. Null value semantics

  NOT
True False
False True
Unknown Unknown

 

Example: Null value semantics

select object(e) from EmpBean where e.salary > 10  and e.dept.budget > 100

If salary is NULL the evaluation of e.salary > 10 returns unknown and the employee object is not returned. If the cmr field dept or budget is NULL evaluation of e.dept.budget > 100 returns unknown and the employee object is not returned.

select object(e) from EmpBean where e.dept.budget is null

In J2EE 1.3 if dept or budget is NULL evaluation of e.dept.budget is null returns TRUE and the employee object is returned. In J2EE 1.4 the employee object is returned only if budget is NULL.

select object(e) from EmpBean e ,  in (e.dept.emps) e1 where e1.salary > 10

If dept is NULL, then the multivalued path expression e.dept.emps results in an empty collection (not a collection that contains a NULL value). An employee with a null dept value will not be returned.

select object(e) from EmpBean e where  e.dept.emps is empty

If dept is NULL the evaluation of the predicate in unknown and the employee object is not returned.

select object(e) from EmpBean e , EmpBean e1  where e member of  e1.dept.emps

If dept is NULL evaluation of the member of predicate returns unknown and the employee is not returned.



Related concepts


EJB query language
WHERE clause
Expressions

 

Related tasks


Use EJB query