Как добавить список предложений WHERE в Hibernate JPA CriteriaUpdate [массовое обновление] - PullRequest
0 голосов
/ 29 апреля 2019

Как использовать следующий запрос на обновление mysql в JPA / Hibernate?

UPDATE ProjectStatus
SET deployable = true
WHERE (projectId = 100 AND team = red) or (projectId = 101 AND team = yellow) or ..
AND vertical = 'ITDept'

У меня есть список списков атрибутов projectId и team, который вводится в этот метод.

public ProjectIdTeam {
 private Integer ProjectId;
 private String team;
 //setters and getters
}

public void updateProjectList(List<ProjectIdTeam> projectIdTeamList, String vertical) {

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaUpdate<ProjectStatus> criteriaUpdate = criteriaBuilder.createCriteriaUpdate(ProjectStatus.class);
Root<ProjectStatus> lRoot = criteriaUpdate.from(ProjectStatus.class);
lRoot.get("projectId");
lRoot.get("team");
lRoot.get("vertical");

???
}

1 Ответ

0 голосов
/ 29 апреля 2019

Объедините несколько вызовов на criteriaBuilder.or и criteriaBuilder.and

lRoot.where(
   criteriaBuilder.or(
      criteriaBuilder.and(
         criteriaBuilder.equal(lRoot.get("projectId"), 100),
         criteriaBuilder.equal(lRoot.get("team"), "red")
       ),
       //NEXT CONDITION
   )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...