Skip to content

Commit

Permalink
HHH-17377 - Migrate to JPA 3.2
Browse files Browse the repository at this point in the history
https://hibernate.atlassian.net/browse/HHH-17377

Test compilation success!!  95 test failures next
  • Loading branch information
sebersole committed Nov 17, 2023
1 parent 573b850 commit 50de0ef
Show file tree
Hide file tree
Showing 25 changed files with 150 additions and 99 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,11 @@ public interface QueryProducer {
* @return The {@link NativeQuery} instance for manipulation and execution
*
* @see jakarta.persistence.EntityManager#createNativeQuery(String,Class)
*
* @apiNote Changes in JPA 3.2 required de-typing this to be compilable with their changes
*/
NativeQuery<?> createNativeQuery(String sqlString, Class<?> resultClass);
@SuppressWarnings("rawtypes")
NativeQuery createNativeQuery(String sqlString, Class<?> resultClass);

/**
* Create a {@link NativeQuery} instance for the given native SQL query
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,21 @@ public JpaPredicate getRestriction() {
return query.getRestriction();
}

@Override
public JpaCriteriaQuery<R> where(List<Predicate> restrictions) {
return query.where( restrictions );
}

@Override
public JpaCriteriaQuery<R> having(List<Predicate> restrictions) {
return query.having( restrictions );
}

@Override
public <U> JpaSubQuery<U> subquery(EntityType<U> type) {
return query.subquery( type );
}

@Override
public JpaExpression<Number> getOffset() {
return query.getOffset();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import jakarta.persistence.criteria.Selection;
import jakarta.persistence.criteria.SetJoin;
import jakarta.persistence.criteria.Subquery;
import jakarta.persistence.criteria.TemporalField;

/**
* A JPA {@link CriteriaBuilder} is a source of objects which may be composed
Expand Down Expand Up @@ -173,12 +174,26 @@ default <T> JpaSubQuery<T> unionAll(Subquery<? extends T> query1, Subquery<?>...
return union( true, query1, queries );
}

@Override
<T> JpaCriteriaQuery<T> union(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right);

@Override
default <T> JpaCriteriaQuery<T> unionAll(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right) {
return null;
}

default <T> JpaSubQuery<T> union(Subquery<? extends T> query1, Subquery<?>... queries) {
return union( false, query1, queries );
}

<T> JpaSubQuery<T> union(boolean all, Subquery<? extends T> query1, Subquery<?>... queries);

@Override
<T> JpaCriteriaQuery<T> intersect(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right);

@Override
<T> JpaCriteriaQuery<T> intersectAll(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right);

default <T> JpaSubQuery<T> intersectAll(Subquery<? extends T> query1, Subquery<?>... queries) {
return intersect( true, query1, queries );
}
Expand All @@ -189,6 +204,12 @@ default <T> JpaSubQuery<T> intersect(Subquery<? extends T> query1, Subquery<?>..

<T> JpaSubQuery<T> intersect(boolean all, Subquery<? extends T> query1, Subquery<?>... queries);

@Override
<T> JpaCriteriaQuery<T> except(CriteriaQuery<T> left, CriteriaQuery<?> right);

@Override
<T> JpaCriteriaQuery<T> exceptAll(CriteriaQuery<T> left, CriteriaQuery<?> right);

default <T> JpaSubQuery<T> exceptAll(Subquery<? extends T> query1, Subquery<?>... queries) {
return except( true, query1, queries );
}
Expand Down Expand Up @@ -3314,4 +3335,18 @@ <T> JpaExpression<T[]> arrayAgg(
*/
@Incubating
<E> JpaPredicate collectionOverlapsNullable(Collection<E> collection1, Expression<? extends Collection<? extends E>> collectionExpression2);


@Override
JpaPredicate and(List<Predicate> restrictions);

@Override
JpaPredicate or(List<Predicate> restrictions);

@Override
JpaExpression<String> concat(List<Expression<String>> expressions);

@Override
<N, T extends Temporal> JpaExpression<N> extract(TemporalField<N, T> field, Expression<T> temporal);

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

import java.util.List;
import java.util.Set;

import org.hibernate.query.sqm.FetchClauseType;

import jakarta.persistence.criteria.CriteriaQuery;
import jakarta.persistence.criteria.Expression;
import jakarta.persistence.criteria.Order;
Expand All @@ -17,8 +20,6 @@
import jakarta.persistence.criteria.Selection;
import jakarta.persistence.metamodel.EntityType;

import org.hibernate.query.sqm.FetchClauseType;

/**
* Extension of the JPA {@link CriteriaQuery}
*
Expand Down Expand Up @@ -105,6 +106,9 @@ default List<Order> getOrderList() {
@Override
JpaCriteriaQuery<T> where(Predicate... restrictions);

@Override
JpaCriteriaQuery<T> where(List<Predicate> restrictions);

@Override
JpaCriteriaQuery<T> groupBy(Expression<?>... grouping);

Expand All @@ -117,9 +121,15 @@ default List<Order> getOrderList() {
@Override
JpaCriteriaQuery<T> having(Predicate... restrictions);

@Override
JpaCriteriaQuery<T> having(List<Predicate> restrictions);

@Override
JpaCriteriaQuery<T> orderBy(Order... o);

@Override
JpaCriteriaQuery<T> orderBy(List<Order> o);

@Override
<U> JpaSubQuery<U> subquery(EntityType<U> type);
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,23 +33,21 @@ public interface JpaFrom<O,T> extends JpaPath<T>, JpaFetchParent<O,T>, From<O,T>
<Y> JpaEntityJoin<T, Y> join(Class<Y> entityClass);

@Override
<Y> JpaJoin<T, Y> join(Class<Y> entityClass, JoinType joinType);
<Y> JpaEntityJoin<T, Y> join(Class<Y> entityClass, JoinType joinType);

default <X> JpaEntityJoin<T, X> join(Class<X> entityJavaType, SqmJoinType joinType) {
return join( entityJavaType, joinType.getCorrespondingJpaJoinType() );
}

@Override
<Y> JpaJoin<T, Y> join(EntityType<Y> entity);

@Override
<Y> JpaJoin<T, Y> join(EntityType<Y> entity, JoinType joinType);

//
// @Override
// <Y> JpaEntityJoin<Y> join(Class<Y> entityClass);
//
// <X> JpaEntityJoin<X> join(EntityDomainType<X> entity);
//
// <X> JpaEntityJoin<X> join(Class<X> entityJavaType, SqmJoinType joinType);
//
// <X> JpaEntityJoin<X> join(EntityDomainType<X> entity, SqmJoinType joinType);
<X> JpaEntityJoin<T,X> join(EntityDomainType<X> entity);

<X> JpaEntityJoin<T,X> join(EntityDomainType<X> entity, SqmJoinType joinType);

@Incubating
<X> JpaDerivedJoin<X> join(Subquery<X> subquery);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,8 @@ public <T> JpaSubQuery<T> except(boolean all, Subquery<? extends T> query1, Subq
return criteriaBuilder.except( all, query1, queries );
}



@Override
public JpaExpression<Integer> sign(Expression<? extends Number> x) {
return criteriaBuilder.sign( x );
Expand Down Expand Up @@ -305,7 +307,7 @@ public JpaExpression<LocalTime> localTime() {
}

@Override
public <N, T extends Temporal> Expression<N> extract(TemporalField<N, T> field, Expression<T> temporal) {
public <N, T extends Temporal> JpaExpression<N> extract(TemporalField<N, T> field, Expression<T> temporal) {
return null;
}

Expand All @@ -325,32 +327,32 @@ public <X, T extends X> JpaRoot<T> treat(Root<X> root, Class<T> type) {
}

@Override
public <T> CriteriaQuery<T> union(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right) {
public <T> JpaCriteriaQuery<T> union(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right) {
return criteriaBuilder.union( left, right );
}

@Override
public <T> CriteriaQuery<T> unionAll(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right) {
public <T> JpaCriteriaQuery<T> unionAll(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right) {
return criteriaBuilder.unionAll( left, right );
}

@Override
public <T> CriteriaQuery<T> intersect(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right) {
public <T> JpaCriteriaQuery<T> intersect(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right) {
return criteriaBuilder.intersect( left, right );
}

@Override
public <T> CriteriaQuery<T> intersectAll(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right) {
public <T> JpaCriteriaQuery<T> intersectAll(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right) {
return criteriaBuilder.intersectAll( left, right );
}

@Override
public <T> CriteriaQuery<T> except(CriteriaQuery<T> left, CriteriaQuery<?> right) {
public <T> JpaCriteriaQuery<T> except(CriteriaQuery<T> left, CriteriaQuery<?> right) {
return criteriaBuilder.except( left, right );
}

@Override
public <T> CriteriaQuery<T> exceptAll(CriteriaQuery<T> left, CriteriaQuery<?> right) {
public <T> JpaCriteriaQuery<T> exceptAll(CriteriaQuery<T> left, CriteriaQuery<?> right) {
return criteriaBuilder.exceptAll( left, right );
}

Expand Down Expand Up @@ -850,7 +852,7 @@ public JpaPredicate and(Predicate... restrictions) {
}

@Override
public Predicate and(List<Predicate> restrictions) {
public JpaPredicate and(List<Predicate> restrictions) {
return null;
}

Expand All @@ -865,7 +867,7 @@ public JpaPredicate or(Predicate... restrictions) {
}

@Override
public Predicate or(List<Predicate> restrictions) {
public JpaPredicate or(List<Predicate> restrictions) {
return criteriaBuilder.or( restrictions );
}

Expand Down Expand Up @@ -1166,7 +1168,7 @@ public JpaPredicate notLike(Expression<String> x, String pattern, char escapeCha
}

@Override
public Expression<String> concat(List<Expression<String>> expressions) {
public JpaExpression<String> concat(List<Expression<String>> expressions) {
return criteriaBuilder.concat( expressions );
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,9 @@ public interface QueryProducerImplementor extends QueryProducer {
@Override @Deprecated @SuppressWarnings("rawtypes")
NativeQueryImplementor createNativeQuery(String sqlString);

@SuppressWarnings("rawtypes")
@Override
NativeQueryImplementor<?> createNativeQuery(String sqlString, Class<?> resultClass);
NativeQueryImplementor createNativeQuery(String sqlString, Class<?> resultClass);

@Override
<R> NativeQueryImplementor<R> createNativeQuery(String sqlString, Class<R> resultClass, String tableAlias);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -511,37 +511,37 @@ public <X, T extends X> SqmRoot<T> treat(Root<X> root, Class<T> type) {
}

@Override
public <T> CriteriaQuery<T> union(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right) {
public <T> JpaCriteriaQuery<T> union(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right) {
// todo (jpa 3.2) : implement
throw new UnsupportedOperationException( "Not yet implemented" );
}

@Override
public <T> CriteriaQuery<T> unionAll(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right) {
public <T> JpaCriteriaQuery<T> unionAll(CriteriaQuery<? extends T> left, CriteriaQuery<? extends T> right) {
// todo (jpa 3.2) : implement
throw new UnsupportedOperationException( "Not yet implemented" );
}

@Override
public <T> CriteriaQuery<T> intersect(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right) {
public <T> JpaCriteriaQuery<T> intersect(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right) {
// todo (jpa 3.2) : implement
throw new UnsupportedOperationException( "Not yet implemented" );
}

@Override
public <T> CriteriaQuery<T> intersectAll(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right) {
public <T> JpaCriteriaQuery<T> intersectAll(CriteriaQuery<? super T> left, CriteriaQuery<? super T> right) {
// todo (jpa 3.2) : implement
throw new UnsupportedOperationException( "Not yet implemented" );
}

@Override
public <T> CriteriaQuery<T> except(CriteriaQuery<T> left, CriteriaQuery<?> right) {
public <T> JpaCriteriaQuery<T> except(CriteriaQuery<T> left, CriteriaQuery<?> right) {
// todo (jpa 3.2) : implement
throw new UnsupportedOperationException( "Not yet implemented" );
}

@Override
public <T> CriteriaQuery<T> exceptAll(CriteriaQuery<T> left, CriteriaQuery<?> right) {
public <T> JpaCriteriaQuery<T> exceptAll(CriteriaQuery<T> left, CriteriaQuery<?> right) {
// todo (jpa 3.2) : implement
throw new UnsupportedOperationException( "Not yet implemented" );
}
Expand Down Expand Up @@ -1749,7 +1749,7 @@ public JpaExpression<LocalTime> localTime() {
}

@Override
public <N, T extends Temporal> Expression<N> extract(TemporalField<N, T> field, Expression<T> temporal) {
public <N, T extends Temporal> SqmExpression<N> extract(TemporalField<N, T> field, Expression<T> temporal) {
return null;
}

Expand Down Expand Up @@ -2065,7 +2065,7 @@ public SqmPredicate and(Predicate... restrictions) {
}

@Override
public Predicate and(List<Predicate> restrictions) {
public SqmPredicate and(List<Predicate> restrictions) {
return null;
}

Expand Down Expand Up @@ -2093,7 +2093,7 @@ public SqmPredicate or(Predicate... restrictions) {
}

@Override
public Predicate or(List<Predicate> restrictions) {
public SqmPredicate or(List<Predicate> restrictions) {
return null;
}

Expand Down Expand Up @@ -2620,7 +2620,7 @@ public SqmPredicate notLike(Expression<String> x, String pattern, char escapeCha
}

@Override
public Expression<String> concat(List<Expression<String>> expressions) {
public SqmExpression<String> concat(List<Expression<String>> expressions) {
return null;
}

Expand Down

0 comments on commit 50de0ef

Please sign in to comment.