最近又复习了JPA和Hibernate,JPA-hibernate到现在支持自定义对象和动态参数查询都很复杂,早应该简化了。
Mybatis变得如此受欢迎,确实有原因的。
查询语句需要:
a.自定义Object,比如ProductWithTypeName
b.支持根据动态参数组装sql语句
在Mybatis里面实现这两个要求就很简单和方便。
我喜欢用注解,不想用xml配置文件,继续简化和少些代码。
public class ProductWithTypeName {
private Integer prodectId;
private String productName;
private Integer typeId;
private String typeName;
1. 实现方式一
@Select({ "<script>"
+"select p.id as prodectId, p.name as productName,type.id as typeId,type.name as typeName "
+"from product p left join product_type type on p.product_type =type.id "
+"where 1=1"
+"<if test='pname != null'> AND p.name=#{pname}