项目大类的信息
/**
* 项目大类(一级分类)
* @author luoye
*
*/
@Entity
@Table(name="~~~(省略)")
public class FirstLevelClassification {
@Id
@GeneratedValue(generator = "baseeGenerator")
@GenericGenerator(name = "baseeGenerator" , strategy = "guid") //根据表主键的规则自动生成 guid
@Column(name = "dlbm" , length = 36)
private String id; //大类编码
@Column(name="dlmc")
private String name; //大类名称
@OneToMany(fetch=FetchType.LAZY,cascade= {CascadeType.PERSIST,CascadeType.REFRESH},mappedBy="firstLevelClassification")
private Set<SecondLevelClassification> secondLevelClassifications;//小类
@OneToOne(fetch=FetchType.EAGER,mappedBy="firstLevelClassification")
private FirstLevelClassificationExpandInfo firstLevelClassificationExpandInfo;//大类拓展信息表
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<SecondLevelClassification> getSecondLevelClassifications() {
return secondLevelClassifications;
}
public void setSecondLevelClassifications(Set<SecondLevelClassification> secondLevelClassifications) {
this.secondLevelClassifications = secondLevelClassifications;
}
public FirstLevelClassificationExpandInfo getFirstLevelClassificationExpandInfo() {
return firstLevelClassificationExpandInfo;
}
public void setFirstLevelClassificationExpandInfo(
FirstLevelClassificationExpandInfo firstLevelClassificationExpandInfo) {
this.firstLevelClassificationExpandInfo = firstLevelClassificationExpandInfo;
}
}
这是医院项目大类的拓展信息
@Entity
@Table(name="~~~(省略)")
public class FirstLevelClassificationExpandInfo extends HisBaseEntity implements Serializable{
private static final long serialVersionUID = 1L;
@JoinColumn(name="xmdlxh")
@OneToOne(fetch=FetchType.EAGER)
private FirstLevelClassification firstLevelClassification;//大类
@Column(name="xmjj")
private String Introduction;//简介
public FirstLevelClassification getFirstLevelClassification() {
return firstLevelClassification;
}
public void setFirstLevelClassification(FirstLevelClassification firstLevelClassification) {
this.firstLevelClassification = firstLevelClassification;
}
public String getIntroduction() {
return Introduction;
}
public void setIntroduction(String introduction) {
Introduction = introduction;
}
}
然后我查询大类信息
/**
* 获取项目大类列表
*/
@Override
public Result getFirstLevelClassifications() throws Exception {
List<FirstLevelClassification> firstLevelClassifications = firstLevelClassificationRepository.findAll();
System.out.println(firstLevelClassifications.size());
return success();
}
关键问题来了,我查询大类信息我想连着拓展信息一起查出来,可是他查询的拓展信息的时候不是左连接查询,是先查出大类,在循环查询拓展信息,导致效率极低~,有没有精通hibernate的大佬帮助我一下我这个可怜的小码农啊
目前自己的解决的方案是手写sql查vo,想问问大佬们有没有便捷的解决方案~~
贴下目前的效率
万分感谢大佬~~~