1

我有多个类的通用 HQL

Query query = session.createQuery("select id, name from " + hibernateClass.getClass().getName());

query.list();返回一个List<Object[]>。现在查询的输出具有相同的结构,即 aLong id和 a String name。那么是否可以将此内容放在一个类中,这样当我调用时,query.list()所有内容都会被复制到一个列表中,而我不必创建一个新List对象并填充它。

4

1 回答 1

2

有一些可能性会导致类似的结果(假设您希望List<NewClass>NewClass 仅具有属性 id 和 name 的结果):

1)你做createQuery("select new NewClass(id, name) from " + hibernateClass.getClass())

2)您为同一个数据库表的 NewClass 创建一个新的映射文件,但只有属性 id 和 name,然后您的查询是createQuery("from " + NewClass.class)

3)你只是这样做createQuery("from " + hibernateClass.getClass()),你不关心加载的多余值。与仅加载必要的列相比,加载所有列的额外时间是微不足道的。如果您愿意,您仍然可以创建一个类或接口 NewClass 和 for HibernateClass extends/implements NewClass

我个人更喜欢3),但这取决于你的口味。

于 2012-04-27T14:34:35.653 回答