java从数据库查询树结构
- 实体类
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_000_factory")
@ApiModel(value="Factory对象", description="Factory对象")
public class Factory implements Serializable {
@TableId(value = "FactoryId")
private Long FactoryId;
@TableField("FactoryName")
private String FactoryName;
@TableField("LocalNo")
private Long LocalNo;
@TableField(exist = false)
private List<Factory> children;
}
- Mapper
@Repository
public interface FactoryMapper extends BaseMapper<Factory> {
public List<Factory> getFactoryTree(Long localNo);
}
- Mapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.community.manage.dao.Factory.FactoryMapper">
<resultMap type="com.community.manage.model.Factory.Factory" id="factoryResult">
<id column="factoryId" property="factoryId"/>
<result column="LocalNo" property="localNo"/>
<result column="FactoryName" property="factoryName"/>
<collection column="factoryId" property="children" ofType="com.community.manage.model.Factory.Factory"
select="getFactoryTree"></collection>
</resultMap>
<select id="getFactoryTree" resultMap="factoryResult" parameterType="long">
select * from t_000_factory where
LocalNo=#{localNo} and IsDel!=1 order by FactoryNo
</select>
</mapper>