У меня есть объект с определенными полямиJPA 2.0, запись запроса с несколькими условными
@Entity
public MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
public UUID uuid;
public String value;
.....
}
Теперь я хотел бы создать запрос, который возвращает 1, если есть по крайней мере, X объекты в базе данных с таким же UUID, или возвращает 2, если есть хотя бы Y объектов с одинаковым uuid и имеют одинаковое значение. Я не уверен, описал ли я это хорошо. Если я хотел бы сделать это в Java с коллекцией было бы как следующий код:
int b = 0;
String Y = ..;
UUID X = ...;
List<MyEntity> list = getAllEntitiesWithSameUUID(X)
if (list.sze() == 50) return 1
for (MyEntity e : list) {
if (e.value.equalsIgnoreCase(Y)) {
b++;
if (b == 100) {
return 2;
}
}
}
В моем случае я должен обрабатывать тонны данных, я хотел бы, чтобы переместить всю обработку на сервер базы данных и в моем приложение получает только целое число в результате запроса.
Могу ли я использовать запрос JPA, CriteriaQuery (что-то еще) для достижения этого? Я использую JPA 2.0, и Hibernate 4.
Я думаю, что лучше всего использовать собственный запрос. – DuncanKinnear