Преобразование родного запроса в критерии JPAJAVA

Программисты JAVA общаются здесь
Anonymous
Преобразование родного запроса в критерии JPA

Сообщение Anonymous »

Вот ситуация: < /p>
У меня есть следующая сущность: < /p>

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

@Entity
@Table(name = "ziggy_DatastoreProducerConsumer")
public class DatastoreProducerConsumer {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,
generator = "ziggy_DatastoreProducerConsumer_generator")
@SequenceGenerator(name = "ziggy_DatastoreProducerConsumer_generator", initialValue = 1,
sequenceName = "ziggy_DatastoreProducerConsumer_sequence", allocationSize = 1)
private Long id;

@Column(nullable = false, columnDefinition = "varchar(1000000)", unique = true)
private String filename;

private long producerId;

@ElementCollection
@JoinTable(name = "ziggy_DatastoreProducerConsumer_consumers")
private Set consumers = new TreeSet();

}
Мне нужно запросить базу данных для имен файлов DataStoreProducerConsumer , когда в поле потребителей содержится любая из указанных сборов значений. public List filesConsumedBy(Collection consumerIds) {
Query sqlQuery = getSession()
.createNativeQuery("select filename from ziggy_datastoreproducerconsumer where id in "
+ "(select datastoreproducerconsumer_id from ziggy_datastoreproducerconsumer_consumers "
+ "where consumers in (?1))");
sqlQuery.setParameter(1, consumerIds);
return sqlQuery.getResultList();
}
< /code>
Это работает, и обладает отличной производительностью: в контексте моей системы запрос выполняется через пару секунд. предложения?

Подробнее здесь: https://stackoverflow.com/questions/794 ... a-criteria

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