2016-11-16 3 views
0

Я конвертируюсь в спящий режим 5.2.4 и использую CriteriaQuery. У вас небольшая проблема при тестировании нулевого соединения в файле. Это то, чем я занимался, прежде чем работал.Спящий режим Критерии проверки подлинности для нулевого соединения

@Entity 
public class MyClass { 
.... 
@ManyToOne(..) 
public MyDetail getMyDetail() { 
    return myDetail; 
} 
} 

Criteria criteria = session.createCriteria(MyClass.class); 
criteria.createAlias("myDetail", "md"); 
criteria.add(Restrictions.isNotNull("myDetail")); 

Я проверял, как это и иногда он не работает:

andPredicate = builder.and(andPredicate, builder.isNotNull(
        root.get(MyClass_.myDetail))); 

Есть правильный способ сделать это? Я попытался создать соединение и проверить значение null, но это также не работает:

Join<MyClass, MyDetail> myJoin = root.join(MyClass_.myDetail); 

andPredicate = builder.and(andPredicate, myJoin.isNotNull()); 

Спасибо.

ответ

0

Работали его, мне нужно соответствие

criteria.createAlias("myDetail", "md"); 

т.е.

root.join(MyClass_.myDetail); 

Поскольку запрос не имеет выбора по отношению, так что я не делал соединения.

Похоже, что мне не нужно проверять, является ли соединение нулевым. Просто сделать соединение достаточно.

Смежные вопросы