spring boot jpa 一对多关系子表查询多次

dopsop110 2019-04-09 04:41:28
我有2个表,一对多关系:
t_damage_lodition 主表
t_damage_cabin 子表
子表里有个外键是主表里面得主键,用得mysql数据库,但是数据库中未建立主外键关系。

代码如下
表t_damage_lodition对应的实体:

@Entity
@Data
@Table(name="t_damage_lodition")
public class DamageLodition extends AbstractEntity{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
Integer damageid;
Integer UserId;
String loaditionName;
Date createDate;
Date modifyDate;
String locakFlag;

@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name="damageid",referencedColumnName="damageid")
List<DamageCabin> damageCabinList;
}



t_damage_cabin实体:

@Entity
@Data
@Table(name="t_damage_cabin")
public class DamageCabinextends AbstractEntity{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
Integer id;
Integer damageid;
String cabinName;
Date strTankName;
}


Dao:

public interface DamageLoditionDao extends JpaRepository<DamageLodition ,Integer>{}


Service:

public class DamageLoditionService {

@Autowired
DamageLoditionDao damageLoditionDao;

public List<DamageLodition> SelectAll()
{
return damageLoditionDao.findAll();
}
}


测试结果


从日志可以看出先查出主表,我主表里面有3条记录,然后循环所有的主表记录去查子表。这样效率好低,为啥没直接生成join语句,直接执行一次查询?还是说我整错了?
...全文
307 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34567726 2019-04-10
  • 打赏
  • 举报
回复
mybatis就是个关联查询.配置一下就成,resultMap里配置个collection标签查询的sql改改就成,jpa应该也有这方面。
dopsop110 2019-04-09
  • 打赏
  • 举报
回复
快下班了,顶一顶哈!希望大家都不要加班!

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧