I did found answer to the original question but i did a little workaround by implementing entity for the ROUTING_SEQUENCES table with composite key. This works well:
Query query = entityManager.createQuery("SELECT m FROM Module m WHERE m.id IN (SELECT rs.id.moduleId FROM RoutingSequence rs WHERE rs.id.backendId = :backendId) AND m.level IN (:levels)", Module.class);
query.setParameter("backendId", backendId);
query.setParameter("levels", Arrays.asList(levels));
return query.getResultList();
Entity:
@Entity
@Table(name = "ROUTING_SEQUENCES")
public class RoutingSequence extends AbstractEntity<RoutingSequencePK> implements Auditable {
@EmbeddedId
private RoutingSequencePK id;
@Column(name = "RS_MANDATORY", nullable = false)
private Boolean mandatory;
@Column(name = "RS_ORDER")
private int order;
@Column(name = "RS_INSDTTM")
private Date insertDate;
@Column(name = "RS_UPDDTTM")
private Date updateDate;
...
}
Id
@Embeddable
public class RoutingSequencePK implements Serializable {
@Column(name = "BCK_ID")
private Long backendId;
@Column(name = "MOD_ID")
private Long moduleId;