Допустим, у меня есть сущность
@Entity
@Table(name = "foos")
class Foo{
@Id
@Generatedvalue(strategy = IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "bar_id")
private Bar bar;
...
}
и проекция, которая должна дать мне id
и boolean
, указывающие, имеет ли экземпляр Bar
:
interface FooProjection{
String getId();
Boolean hasBar();
}
Как вы пишете JPQL-запрос?
Я попытался
@Query(
"SELECT"
" f.id,"
" (f.bar IS NOT NULL) AS bar"
" FROM Foo f"
)
List<FooProjection> findProjections();
, который дал мне org.eclipse.persistence.exceptions.JPQLException
с очень полезным сообщением об ошибке
Выражение недопустимо, что означает, что оно не соответствует грамматике JPQL.
Как вы пишете этот запрос?