SemanticException: элемент выбора в позиции 1 в списке выбора не имеет псевдонима при использовании подвыбора JPQLJAVA

Программисты JAVA общаются здесь
Anonymous
SemanticException: элемент выбора в позиции 1 в списке выбора не имеет псевдонима при использовании подвыбора JPQL

Сообщение Anonymous »

Данные сущности:

Код: Выделить всё

@Entity
@Data
public class Collection {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String createdBy;

@OneToMany(mappedBy = "collection")
private List collectionAccesses;

}

@Entity
@Data
public class CollectionAccess {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne
@JoinColumn(
foreignKey =
@ForeignKey(
value = ConstraintMode.PROVIDER_DEFAULT,
name = "fk_collectionaccess_collection_collections_id"))
private Collection collection;

private Integer accessType;
private LocalDateTime expirationAtUtc;
}
Данная база данных:

Код: Выделить всё

select id, created_by from collection;
+----+------------+
| id | created_by |
+----+------------+
| 40 |   ABC123   |
+----+------------+

select * from collection_access;
+----+-------------+----------------------------+---------------+
| id | access_type | expiration_at_utc          | collection_id |
+----+-------------+----------------------------+---------------+
|  2 |           0 | 2011-12-03 03:15:30.000000 |            40 |
|  3 |           1 | 2011-12-03 03:15:30.000000 |            40 |
+----+-------------+----------------------------+---------------+
Написание этого запроса вызывает SemanticException:

Код: Выделить всё

em.createQuery(
"SELECT t FROM (SELECT c FROM Collection c "
+ "LEFT JOIN c.collectionAccesses ca WHERE c.id = ?1 "
+ "AND (c.createdBy = ?2 OR (ca.accessType = ?3 AND ca.expirationAtUtc 

Подробнее здесь: [url]https://stackoverflow.com/questions/78676896/semanticexception-select-item-at-position-1-in-select-list-has-no-alias-when-us[/url]

Вернуться в «JAVA»