I don't think a subquery in a select clause is supported by JPQL and JPA judging by this:
JPQL LangRef: https://docs.oracle.com/html/E13946_04/ejb3_langref.html#ejb3_langref_select_clause
The SELECT clause has the following syntax:
select_clause ::= SELECT [DISTINCT] select_expression {, select_expression}*
select_expression ::= single_valued_path_expression | aggregate_expression |
identification_variable | OBJECT(identification_variable) | constructor_expression
constructor_expression ::= NEW constructor_name ( constructor_item {,
constructor_item}* )
constructor_item ::= single_valued_path_expression | aggregate_expression
aggregate_expression ::= { AVG | MAX | MIN | SUM } ([DISTINCT]
state_field_path_expression) | COUNT ([DISTINCT] identification_variable |
state_field_path_expression | single_valued_association_path_expression)
As a workaround, you could do a native query or an entity on top of a view. To keep things reasonably clean you could create a view with only the subqueries (and a primary key) and do a lazy one-to-one mapping between the entities.
Note that (complicated) predicates may not be pushed into the view-query efficiently, and typically not very efficiently at all when doing subqueries in the select clause.