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

dopsop110 dopsop110 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我有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语句,直接执行一次查询?还是说我整错了?
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
dopsop110
Java EE 67,535 成员 225,843 内容