dobbinfw已经集成mybatis-plus,其功能已经很强大,本不用扩展。为了方便使用,对数据库进行轻微扩展。
// 通过ID查询对象,并且携带子表数据
default <DTO> DTO selectByIdDto(Long id, Class<DTO> clazz)
使用方法:
1). 在属性上注解@ LeafTable,表示子表。Leaf是叶子子表,意思是,只会向下传递一层。
@Data
@ApiEntity(description = "采购退货单实体")
public class ErpPurchaseReturnDTO extends SuperDTO implements Serializable {
...
@ApiField(description = "商品列表")
@LeafTable
@NotNull(message = "商品列表不能为空")
private List<ErpPurchaseReturnSkuDO> skuList;
}
2).子表上添加@ForeignKey注解,表示这是一个外键字段。
@Data
@TableName("unierp_erp_purchase_return_sku")
public class ErpPurchaseReturnSkuDO extends SuperDO implements Serializable {
@ForeignKey
private Long returnId;
...
}
3).调用查询
public ErpPurchaseReturnDTO detail(Long returnId, Long adminId) throws ServiceException {
return erpPurchaseReturnMapper.selectByIdDto(returnId, ErpPurchaseReturnDTO.class);
}
// 注解使用方式与上面一致
default Integer insertDto(Object dto)
// 注解使用方式与上面一致
default Integer deleteByIdDto(Serializable id, Class<?> clazz)
打开这个配置T/F (true/false ),在项目启动时会自动建表。这个比JPA的功能弱很多,因为没办法判断非空、长度之类的,注解也不要求提供。
com.dobbinsoft.fw.auto-build-table=T
自动建表手动调用IMapper下的:
Integer tableInit();
这个仅支持MySQL,其他类型数据库请不要使用
Integer insertBatchSomeColumn(Collection<T> entityList);