【Java】只查询出表中的部分字段
Hibernate投影查询有两种方案:一是返回Object[]数组的字段查询,但可能破坏业务层统一的对象传递方式;二是通过构造方法返回指定对象,既能实现部分字段查询,又能保持对象传递的一致性。第二种方案需要在映射类中提供对应查询参数的构造方法,更符合面向对象的设计原则。两种方式各有适用场景,开发者需根据实际情况选择。
·
只查询出表中的部分字段, 在Hibernate中叫做投影查询:
第一种解决方案:

解析:从方法的返回值来看,我们可以发现投影查询返回的是一个List类型,这是因为我们查询的字段是多个,所以是Object[]数组,如果我们业务层很多方法都是以对象来传递的,突然来了一个Object[]数组,可能我又要重写一个对应的方法来处理这个家伙,那样投影查询也就得不偿失了!
第二种解决方案:
对象查询

解析:可以看出第二种解决方案返回的对象(被泛型限定的Employee),这种方式解决了传递Object[]方式,只传递对象了,且也实现了,只查询部分属性,需要注意的是Employee 映射对象中必须要有对应查询语句的参数的构造方法。
更多推荐


所有评论(0)