Что-то вроде этого (обратите внимание, что если вы хотите сопоставить «Y»/«N» с булевым типом, который вам нужно создать пользовательский тип данных, этот пример будет придерживаться строки):
public class tooks {
private String bbb;
private DateTime ccc;
private transient String accessType = "Not Defined";
private String ddd;
private String eee = "Y";
}
Я не могу сказать, что вы собираетесь, вы не предоставили никакой другой информации, поэтому я могу только предположить, что вы всегда хотите AccessType «Не определено». Это не фактический столбец в базе данных и поэтому логически не сопоставляется ни с каким полем в объекте. Поэтому просто сопоставьте bbb, ccc, ddd и eee в файле/аннотации отображения и не сопоставляйте accessType, поскольку он не связан с базой данных.
Hibernate будет игнорировать переходные поля в полевом сопоставлении. Если вы используете сопоставление методов (getters/seters), вы должны пометить getAccessType и setAccessType с аннотацией @Transient JPA, а Hibernate будет игнорировать их.
Тогда HQL в значительной степени точно так же, как SQL:
List<took> tooks = (List<took>)session.createQuery("select distinct t from took t where t.eee = 'N' order by t.aaa asc").list();
Каждый объект в ваш результат будет иметь AccessType == «Не определено», но обратите внимание, что это не потому, что он был выбран из базы данных (поскольку он не отображается), это просто значение, которое было инициализировано в объекте Java, что, по-видимому, является конечным результатом, который вы делали.
Боюсь, я не понимаю. Запрос HQL может привести только к объектам с отображением Hibernate, и я не вижу объектов в вашем фрагменте, которые могут быть сопоставлены с выписанным оператором SQL. Можете ли вы опубликовать объект сущности, на который вы собираетесь сопоставить результаты этого запроса? –
Объект @entity, означает отображение hbm –
Я просто хотел преобразовать этот sql в hql, что все, кроме одного столбца, не определены my pojo –