【发布时间】:2020-08-23 05:43:13
【问题描述】:
我有一个带有架构的查找表
在我的控制器中,我根据“lookup_type”调用此表
FormProdIndex f = new FormProdIndex();
model.addAttribute(AuthenticationBase.MODEL_FORMPRODINDEX, f);
// Lookup Models
System.out.println("TEST 1");
model.addAttribute(AuthenticationBase.LOOKUP_FACTORY, this.appLookupDAO.getFactoryList());
此查找模型与我的主模型“FormProdIndex”相关联
@Entity
@Table(name = "Form_Prod_Index")
public class FormProdIndex {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "index_id", nullable = false)
private Long indexId;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "factory_Id", referencedColumnName = "lookup_Id")
private AppLookup lookupFactory;
// getter and setters
}
和我的查找模型
@Entity
@Table(name = "App_Lookup")
public class AppLookup {
@Id
@GeneratedValue
@Column(name = "Lookup_Id", nullable = false)
private Long lookupId;
@Column(name = "Lookup_type", length = 30, nullable = false)
private String lookupType;
@Column(name = "Lookup_Name", length = 30, nullable = false)
private String lookupName;
@OneToOne(mappedBy = "lookupFactory")
@Fetch(FetchMode.JOIN)
private FormProdIndex FormProdIndexFactory;
// getter and setter
}
正如您在 java 日志中看到的那样,我的主模型“FormProdIndex”的 SELECT 查询被多次调用。
TEST 1
Hibernate: select applookup0_.lookup_id as lookup_i1_0_, applookup0_.lookup_desc as lookup_d2_0_, applookup0_.lookup_name as lookup_n3_0_, applookup0_.lookup_type as lookup_t4_0_ from app_lookup applookup0_ where applookup0_.lookup_type='factory' order by applookup0_.lookup_id
Hibernate: select formprodin0_.index_id as index_id1_3_1_, formprodin0_.approved_by as approved2_3_1_, formprodin0_.approved_date as approved3_3_1_, formprodin0_.break_time_mins as break_ti4_3_1_, formprodin0_.created_by as created_5_3_1_, formprodin0_.created_date as created_6_3_1_, formprodin0_.end_date as end_date7_3_1_, formprodin0_.end_time as end_time8_3_1_, formprodin0_.interval_mins as interval9_3_1_, formprodin0_.is_deleted as is_dele10_3_1_, formprodin0_.factory_id as factory21_3_1_, formprodin0_.pack_size as pack_si11_3_1_, formprodin0_.pack_supplier as pack_su12_3_1_, formprodin0_.reject_id as reject_13_3_1_, formprodin0_.rejected_by as rejecte14_3_1_, formprodin0_.rejected_date as rejecte15_3_1_, formprodin0_.remarks as remarks16_3_1_, formprodin0_.session_id as session17_3_1_, formprodin0_.start_date as start_d18_3_1_, formprodin0_.start_time as start_t19_3_1_, formprodin0_.status as status20_3_1_, applookup1_.lookup_id as lookup_i1_0_0_, applookup1_.lookup_desc as lookup_d2_0_0_, applookup1_.lookup_name as lookup_n3_0_0_, applookup1_.lookup_type as lookup_t4_0_0_ from form_prod_index formprodin0_ left outer join app_lookup applookup1_ on formprodin0_.factory_id=applookup1_.lookup_id where formprodin0_.factory_id=?
Hibernate: select formprodin0_.index_id as index_id1_3_1_, formprodin0_.approved_by as approved2_3_1_, formprodin0_.approved_date as approved3_3_1_, formprodin0_.break_time_mins as break_ti4_3_1_, formprodin0_.created_by as created_5_3_1_, formprodin0_.created_date as created_6_3_1_, formprodin0_.end_date as end_date7_3_1_, formprodin0_.end_time as end_time8_3_1_, formprodin0_.interval_mins as interval9_3_1_, formprodin0_.is_deleted as is_dele10_3_1_, formprodin0_.factory_id as factory21_3_1_, formprodin0_.pack_size as pack_si11_3_1_, formprodin0_.pack_supplier as pack_su12_3_1_, formprodin0_.reject_id as reject_13_3_1_, formprodin0_.rejected_by as rejecte14_3_1_, formprodin0_.rejected_date as rejecte15_3_1_, formprodin0_.remarks as remarks16_3_1_, formprodin0_.session_id as session17_3_1_, formprodin0_.start_date as start_d18_3_1_, formprodin0_.start_time as start_t19_3_1_, formprodin0_.status as status20_3_1_, applookup1_.lookup_id as lookup_i1_0_0_, applookup1_.lookup_desc as lookup_d2_0_0_, applookup1_.lookup_name as lookup_n3_0_0_, applookup1_.lookup_type as lookup_t4_0_0_ from form_prod_index formprodin0_ left outer join app_lookup applookup1_ on formprodin0_.factory_id=applookup1_.lookup_id where formprodin0_.factory_id=?
Hibernate: select formprodin0_.index_id as index_id1_3_1_, formprodin0_.approved_by as approved2_3_1_, formprodin0_.approved_date as approved3_3_1_, formprodin0_.break_time_mins as break_ti4_3_1_, formprodin0_.created_by as created_5_3_1_, formprodin0_.created_date as created_6_3_1_, formprodin0_.end_date as end_date7_3_1_, formprodin0_.end_time as end_time8_3_1_, formprodin0_.interval_mins as interval9_3_1_, formprodin0_.is_deleted as is_dele10_3_1_, formprodin0_.factory_id as factory21_3_1_, formprodin0_.pack_size as pack_si11_3_1_, formprodin0_.pack_supplier as pack_su12_3_1_, formprodin0_.reject_id as reject_13_3_1_, formprodin0_.rejected_by as rejecte14_3_1_, formprodin0_.rejected_date as rejecte15_3_1_, formprodin0_.remarks as remarks16_3_1_, formprodin0_.session_id as session17_3_1_, formprodin0_.start_date as start_d18_3_1_, formprodin0_.start_time as start_t19_3_1_, formprodin0_.status as status20_3_1_, applookup1_.lookup_id as lookup_i1_0_0_, applookup1_.lookup_desc as lookup_d2_0_0_, applookup1_.lookup_name as lookup_n3_0_0_, applookup1_.lookup_type as lookup_t4_0_0_ from form_prod_index formprodin0_ left outer join app_lookup applookup1_ on formprodin0_.factory_id=applookup1_.lookup_id where formprodin0_.factory_id=?
Hibernate: select formprodin0_.index_id as index_id1_3_1_, formprodin0_.approved_by as approved2_3_1_, formprodin0_.approved_date as approved3_3_1_, formprodin0_.break_time_mins as break_ti4_3_1_, formprodin0_.created_by as created_5_3_1_, formprodin0_.created_date as created_6_3_1_, formprodin0_.end_date as end_date7_3_1_, formprodin0_.end_time as end_time8_3_1_, formprodin0_.interval_mins as interval9_3_1_, formprodin0_.is_deleted as is_dele10_3_1_, formprodin0_.factory_id as factory21_3_1_, formprodin0_.pack_size as pack_si11_3_1_, formprodin0_.pack_supplier as pack_su12_3_1_, formprodin0_.reject_id as reject_13_3_1_, formprodin0_.rejected_by as rejecte14_3_1_, formprodin0_.rejected_date as rejecte15_3_1_, formprodin0_.remarks as remarks16_3_1_, formprodin0_.session_id as session17_3_1_, formprodin0_.start_date as start_d18_3_1_, formprodin0_.start_time as start_t19_3_1_, formprodin0_.status as status20_3_1_, applookup1_.lookup_id as lookup_i1_0_0_, applookup1_.lookup_desc as lookup_d2_0_0_, applookup1_.lookup_name as lookup_n3_0_0_, applookup1_.lookup_type as lookup_t4_0_0_ from form_prod_index formprodin0_ left outer join app_lookup applookup1_ on formprodin0_.factory_id=applookup1_.lookup_id where formprodin0_.factory_id=?
Hibernate: select formprodin0_.index_id as index_id1_3_1_, formprodin0_.approved_by as approved2_3_1_, formprodin0_.approved_date as approved3_3_1_, formprodin0_.break_time_mins as break_ti4_3_1_, formprodin0_.created_by as created_5_3_1_, formprodin0_.created_date as created_6_3_1_, formprodin0_.end_date as end_date7_3_1_, formprodin0_.end_time as end_time8_3_1_, formprodin0_.interval_mins as interval9_3_1_, formprodin0_.is_deleted as is_dele10_3_1_, formprodin0_.factory_id as factory21_3_1_, formprodin0_.pack_size as pack_si11_3_1_, formprodin0_.pack_supplier as pack_su12_3_1_, formprodin0_.reject_id as reject_13_3_1_, formprodin0_.rejected_by as rejecte14_3_1_, formprodin0_.rejected_date as rejecte15_3_1_, formprodin0_.remarks as remarks16_3_1_, formprodin0_.session_id as session17_3_1_, formprodin0_.start_date as start_d18_3_1_, formprodin0_.start_time as start_t19_3_1_, formprodin0_.status as status20_3_1_, applookup1_.lookup_id as lookup_i1_0_0_, applookup1_.lookup_desc as lookup_d2_0_0_, applookup1_.lookup_name as lookup_n3_0_0_, applookup1_.lookup_type as lookup_t4_0_0_ from form_prod_index formprodin0_ left outer join app_lookup applookup1_ on formprodin0_.factory_id=applookup1_.lookup_id where formprodin0_.factory_id=?
Hibernate: select formprodin0_.index_id as index_id1_3_1_, formprodin0_.approved_by as approved2_3_1_, formprodin0_.approved_date as approved3_3_1_, formprodin0_.break_time_mins as break_ti4_3_1_, formprodin0_.created_by as created_5_3_1_, formprodin0_.created_date as created_6_3_1_, formprodin0_.end_date as end_date7_3_1_, formprodin0_.end_time as end_time8_3_1_, formprodin0_.interval_mins as interval9_3_1_, formprodin0_.is_deleted as is_dele10_3_1_, formprodin0_.factory_id as factory21_3_1_, formprodin0_.pack_size as pack_si11_3_1_, formprodin0_.pack_supplier as pack_su12_3_1_, formprodin0_.reject_id as reject_13_3_1_, formprodin0_.rejected_by as rejecte14_3_1_, formprodin0_.rejected_date as rejecte15_3_1_, formprodin0_.remarks as remarks16_3_1_, formprodin0_.session_id as session17_3_1_, formprodin0_.start_date as start_d18_3_1_, formprodin0_.start_time as start_t19_3_1_, formprodin0_.status as status20_3_1_, applookup1_.lookup_id as lookup_i1_0_0_, applookup1_.lookup_desc as lookup_d2_0_0_, applookup1_.lookup_name as lookup_n3_0_0_, applookup1_.lookup_type as lookup_t4_0_0_ from form_prod_index formprodin0_ left outer join app_lookup applookup1_ on formprodin0_.factory_id=applookup1_.lookup_id where formprodin0_.factory_id=?
Hibernate: select formprodin0_.index_id as index_id1_3_1_, formprodin0_.approved_by as approved2_3_1_, formprodin0_.approved_date as approved3_3_1_, formprodin0_.break_time_mins as break_ti4_3_1_, formprodin0_.created_by as created_5_3_1_, formprodin0_.created_date as created_6_3_1_, formprodin0_.end_date as end_date7_3_1_, formprodin0_.end_time as end_time8_3_1_, formprodin0_.interval_mins as interval9_3_1_, formprodin0_.is_deleted as is_dele10_3_1_, formprodin0_.factory_id as factory21_3_1_, formprodin0_.pack_size as pack_si11_3_1_, formprodin0_.pack_supplier as pack_su12_3_1_, formprodin0_.reject_id as reject_13_3_1_, formprodin0_.rejected_by as rejecte14_3_1_, formprodin0_.rejected_date as rejecte15_3_1_, formprodin0_.remarks as remarks16_3_1_, formprodin0_.session_id as session17_3_1_, formprodin0_.start_date as start_d18_3_1_, formprodin0_.start_time as start_t19_3_1_, formprodin0_.status as status20_3_1_, applookup1_.lookup_id as lookup_i1_0_0_, applookup1_.lookup_desc as lookup_d2_0_0_, applookup1_.lookup_name as lookup_n3_0_0_, applookup1_.lookup_type as lookup_t4_0_0_ from form_prod_index formprodin0_ left outer join app_lookup applookup1_ on formprodin0_.factory_id=applookup1_.lookup_id where formprodin0_.factory_id=?
Hibernate: select formprodin0_.index_id as index_id1_3_1_, formprodin0_.approved_by as approved2_3_1_, formprodin0_.approved_date as approved3_3_1_, formprodin0_.break_time_mins as break_ti4_3_1_, formprodin0_.created_by as created_5_3_1_, formprodin0_.created_date as created_6_3_1_, formprodin0_.end_date as end_date7_3_1_, formprodin0_.end_time as end_time8_3_1_, formprodin0_.interval_mins as interval9_3_1_, formprodin0_.is_deleted as is_dele10_3_1_, formprodin0_.factory_id as factory21_3_1_, formprodin0_.pack_size as pack_si11_3_1_, formprodin0_.pack_supplier as pack_su12_3_1_, formprodin0_.reject_id as reject_13_3_1_, formprodin0_.rejected_by as rejecte14_3_1_, formprodin0_.rejected_date as rejecte15_3_1_, formprodin0_.remarks as remarks16_3_1_, formprodin0_.session_id as session17_3_1_, formprodin0_.start_date as start_d18_3_1_, formprodin0_.start_time as start_t19_3_1_, formprodin0_.status as status20_3_1_, applookup1_.lookup_id as lookup_i1_0_0_, applookup1_.lookup_desc as lookup_d2_0_0_, applookup1_.lookup_name as lookup_n3_0_0_, applookup1_.lookup_type as lookup_t4_0_0_ from form_prod_index formprodin0_ left outer join app_lookup applookup1_ on formprodin0_.factory_id=applookup1_.lookup_id where formprodin0_.factory_id=?
Hibernate: select formprodin0_.index_id as index_id1_3_1_, formprodin0_.approved_by as approved2_3_1_, formprodin0_.approved_date as approved3_3_1_, formprodin0_.break_time_mins as break_ti4_3_1_, formprodin0_.created_by as created_5_3_1_, formprodin0_.created_date as created_6_3_1_, formprodin0_.end_date as end_date7_3_1_, formprodin0_.end_time as end_time8_3_1_, formprodin0_.interval_mins as interval9_3_1_, formprodin0_.is_deleted as is_dele10_3_1_, formprodin0_.factory_id as factory21_3_1_, formprodin0_.pack_size as pack_si11_3_1_, formprodin0_.pack_supplier as pack_su12_3_1_, formprodin0_.reject_id as reject_13_3_1_, formprodin0_.rejected_by as rejecte14_3_1_, formprodin0_.rejected_date as rejecte15_3_1_, formprodin0_.remarks as remarks16_3_1_, formprodin0_.session_id as session17_3_1_, formprodin0_.start_date as start_d18_3_1_, formprodin0_.start_time as start_t19_3_1_, formprodin0_.status as status20_3_1_, applookup1_.lookup_id as lookup_i1_0_0_, applookup1_.lookup_desc as lookup_d2_0_0_, applookup1_.lookup_name as lookup_n3_0_0_, applookup1_.lookup_type as lookup_t4_0_0_ from form_prod_index formprodin0_ left outer join app_lookup applookup1_ on formprodin0_.factory_id=applookup1_.lookup_id where formprodin0_.factory_id=?
据我了解,我的主模型的 SELECT 查询不应该运行,因为这是一个新对象。这只是一种查找类型,如果我添加“line”和“pack_mat”,查询会变长,页面加载也会变长。知道如何解决这个问题吗?
【问题讨论】:
标签: java spring-boot hibernate jpa spring-data-jpa