Решением является использование " addScalar " при выполнении запроса.
Предположим, что ваша сущность является пользователем:
@Entity
@Table(name="user")
@DynamicUpdate(value=true)
public class UserEntity implements Serializable{
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id",updatable=false)
private Long id;
@Column(name="name",nullable=false,length=20)
private String name;
....
}
Вместо того, чтобы делать:
List<UserEntity> users = sessionFactory.getCurrentSession()
.createQuery(query)
.list();
Использовать addScalar:
List<UserEntity> users = sessionFactory.getCurrentSession()
.createQuery(query)
.addScalar("id",LongType.INSTANCE)
.addScalar("name",StringType.INSTANCE)
.list();
Примечание : до LongType.INSTANCE существовали Hibernate.LONG и Hibernate.STRING (теперь они устарели).