多表分页, photoType 我之前的参数是用Wrappers传入的使用上一样 就是ew.xxx 而已 具体看官网 多参数时建议使用,并且在实体字段上增加表名前缀
@Select("select * from photo p LEFT JOIN label_detail ld on ld.PhotoID = p.PhotoID where p.PhotoType = ${photoType}")
IPage<PhotoEntity> getPageBySort(IPage<PhotoEntity> page, @Param("photoType") Integer photoType);
这里的sql就基本与你手写一直,但是在生成sql 时page会被转换为sql,注意在排序oder序列中各个字段名称要写上面的命名 p、ld 或者 直接写表名,若直接写表名实体应该如下,在字段前跟上表名,这样生成时字段会加上前缀
@Data
@TableName("photo")
public class PhotoEntity extends Model<PhotoEntity> {
@TableId(value = "photo.PhotoID",type = IdType.AUTO)
private Integer photoId;
@TableField("photo.PhotoName")
private String photoName;
查询时字段如下
{
"asc": [
"p.FlowerNum"
],
"current": 1,
"desc": [
],
"size": 10
}
当然你要是在实体里面写了前缀后应该
{
"asc": [
"photo.FlowerNum"
],
"current": 1,
"desc": [
],
"size": 10
}
生成的sql
SELECT * FROM photo p LEFT JOIN label_detail ld ON ld.PhotoID = p.PhotoID WHERE p.PhotoType = 1 ORDER BY p.FlowerNum LIMIT 0,10