Skip to content

Commit 2bcd655

Browse files
committed
[hibernate#1885] Add createMutationQuery method that accept criterias
1 parent 1bb5737 commit 2bcd655

File tree

5 files changed

+96
-0
lines changed

5 files changed

+96
-0
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/mutiny/Mutiny.java

+22
Original file line numberDiff line numberDiff line change
@@ -957,6 +957,28 @@ default Uni<Void> lock(Object entity, LockModeType lockModeType) {
957957
*/
958958
MutationQuery createMutationQuery(String queryString);
959959

960+
/**
961+
* Create an instance of {@link MutationQuery} for the given update tree.
962+
*
963+
* @param updateQuery the update criteria query
964+
*
965+
* @return The {@link MutationQuery} instance for manipulation and execution
966+
*
967+
* @see org.hibernate.query.QueryProducer#createMutationQuery(CriteriaUpdate)
968+
*/
969+
<R> MutationQuery createMutationQuery(CriteriaUpdate<R> updateQuery);
970+
971+
/**
972+
* Create an instance of {@link MutationQuery} for the given delete tree.
973+
*
974+
* @param deleteQuery the delete criteria query
975+
*
976+
* @return The {@link MutationQuery} instance for manipulation and execution
977+
*
978+
* @see org.hibernate.query.QueryProducer#createMutationQuery(CriteriaDelete)
979+
*/
980+
<R> MutationQuery createMutationQuery(CriteriaDelete<R> deleteQuery);
981+
960982
/**
961983
* Create an instance of {@link Query} for the given HQL/JPQL query
962984
* string or HQL/JPQL update or delete statement. In the case of an

hibernate-reactive-core/src/main/java/org/hibernate/reactive/mutiny/impl/MutinySessionImpl.java

+10
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,16 @@ public MutationQuery createMutationQuery(String queryString) {
124124
return new MutinyMutationQueryImpl<>( delegate.createReactiveQuery( queryString ), factory );
125125
}
126126

127+
@Override
128+
public <R> MutationQuery createMutationQuery(CriteriaUpdate<R> updateQuery) {
129+
return new MutinyMutationQueryImpl<>( delegate.createReactiveMutationQuery( updateQuery ), factory );
130+
}
131+
132+
@Override
133+
public <R> MutationQuery createMutationQuery(CriteriaDelete<R> deleteQuery) {
134+
return new MutinyMutationQueryImpl<>( delegate.createReactiveMutationQuery( deleteQuery ), factory );
135+
}
136+
127137
@Override @Deprecated
128138
public <R> Query<R> createQuery(String queryString) {
129139
return new MutinyQueryImpl<>( delegate.createReactiveQuery( queryString ), factory );

hibernate-reactive-core/src/main/java/org/hibernate/reactive/stage/Stage.java

+44
Original file line numberDiff line numberDiff line change
@@ -994,6 +994,28 @@ default CompletionStage<Void> lock(Object entity, LockModeType lockModeType) {
994994
*/
995995
MutationQuery createMutationQuery(String queryString);
996996

997+
/**
998+
* Create an instance of {@link MutationQuery} for the given update tree.
999+
*
1000+
* @param updateQuery the update criteria query
1001+
*
1002+
* @return The {@link MutationQuery} instance for manipulation and execution
1003+
*
1004+
* @see org.hibernate.query.QueryProducer#createMutationQuery(CriteriaUpdate)
1005+
*/
1006+
<R> MutationQuery createMutationQuery(CriteriaUpdate<R> updateQuery);
1007+
1008+
/**
1009+
* Create an instance of {@link MutationQuery} for the given delete tree.
1010+
*
1011+
* @param deleteQuery the delete criteria query
1012+
*
1013+
* @return The {@link MutationQuery} instance for manipulation and execution
1014+
*
1015+
* @see org.hibernate.query.QueryProducer#createMutationQuery(CriteriaDelete)
1016+
*/
1017+
<R> MutationQuery createMutationQuery(CriteriaDelete<R> deleteQuery);
1018+
9971019
/**
9981020
* Create an instance of {@link Query} for the given HQL/JPQL query
9991021
* string or HQL/JPQL update or delete statement. In the case of an
@@ -1663,6 +1685,28 @@ default <T> CompletionStage<T> get(Class<T> entityClass, Object id, LockModeType
16631685
*/
16641686
MutationQuery createMutationQuery(String queryString);
16651687

1688+
/**
1689+
* Create an instance of {@link MutationQuery} for the given update tree.
1690+
*
1691+
* @param updateQuery the update criteria query
1692+
*
1693+
* @return The {@link MutationQuery} instance for manipulation and execution
1694+
*
1695+
* @see org.hibernate.query.QueryProducer#createMutationQuery(CriteriaUpdate)
1696+
*/
1697+
<R> MutationQuery createMutationQuery(CriteriaUpdate<R> updateQuery);
1698+
1699+
/**
1700+
* Create an instance of {@link MutationQuery} for the given delete tree.
1701+
*
1702+
* @param deleteQuery the delete criteria query
1703+
*
1704+
* @return The {@link MutationQuery} instance for manipulation and execution
1705+
*
1706+
* @see org.hibernate.query.QueryProducer#createMutationQuery(CriteriaDelete)
1707+
*/
1708+
<R> MutationQuery createMutationQuery(CriteriaDelete<R> deleteQuery);
1709+
16661710
/**
16671711
* Create an instance of {@link Query} for the given SQL query string,
16681712
* or SQL update, insert, or delete statement. In the case of an update,

hibernate-reactive-core/src/main/java/org/hibernate/reactive/stage/impl/StageSessionImpl.java

+10
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,16 @@ public MutationQuery createMutationQuery(String queryString) {
117117
return new StageMutationQueryImpl<>( delegate.createReactiveMutationQuery( queryString ) );
118118
}
119119

120+
@Override
121+
public <R> MutationQuery createMutationQuery(CriteriaUpdate<R> updateQuery) {
122+
return new StageMutationQueryImpl<>( delegate.createReactiveMutationQuery( updateQuery ) );
123+
}
124+
125+
@Override
126+
public <R> MutationQuery createMutationQuery(CriteriaDelete<R> deleteQuery) {
127+
return new StageMutationQueryImpl<>( delegate.createReactiveMutationQuery( deleteQuery ) );
128+
}
129+
120130
@Override
121131
public <T> CompletionStage<T> find(Class<T> entityClass, Object primaryKey) {
122132
return delegate.reactiveFind( entityClass, primaryKey, null, null );

hibernate-reactive-core/src/main/java/org/hibernate/reactive/stage/impl/StageStatelessSessionImpl.java

+10
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,16 @@ public MutationQuery createMutationQuery(String queryString) {
276276
return new StageMutationQueryImpl<>( delegate.createReactiveMutationQuery( queryString ) );
277277
}
278278

279+
@Override
280+
public <R> MutationQuery createMutationQuery(CriteriaUpdate<R> updateQuery) {
281+
return new StageMutationQueryImpl<>( delegate.createReactiveMutationQuery( updateQuery ) );
282+
}
283+
284+
@Override
285+
public <R> MutationQuery createMutationQuery(CriteriaDelete<R> deleteQuery) {
286+
return new StageMutationQueryImpl<>( delegate.createReactiveMutationQuery( deleteQuery ) );
287+
}
288+
279289
@Override
280290
public <R> SelectionQuery<R> createQuery(String queryString, Class<R> resultType) {
281291
return new StageSelectionQueryImpl<>( delegate.createReactiveQuery( queryString, resultType ) );

0 commit comments

Comments
 (0)