【发布时间】:2025-12-04 07:55:01
【问题描述】:
我有一个像下面这样的场景。
假设EntityA 有三个嵌套实体EntityB, EntityC, EntityD。并且所有EntityB, EntityC, EntityD 内部都有几个嵌套实体。
但在选择EntityA 时,它会选择整个嵌套实体树。而我想获取特定的分支。可以说只有EntityA, EntityB 和EntityB 的所有子实体都将被提取,留下EntityC 和EntityD 然后我不知道该怎么做。由于 spring jpa 将所有嵌套对象都带回给我。
我正在使用以下集合映射。
@Entity
@Table(name = "customer_party_mapping")
@Data
public class CustomerPartyMappingEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "customer_id")
private Integer custmerId;
@Column(name = "orgtype_id")
private Integer orgTypeId;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL )
@JoinColumn(name = "customer_party_mapping_id")
@Fetch(value = FetchMode.SUBSELECT)
private List<CustomerPartyBookingLocationEntity> customerPartyBookingLocation=new ArrayList<CustomerPartyBookingLocationEntity>();
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL )
@JoinColumn(name = "customer_party_mapping_id")
@Fetch(value = FetchMode.SUBSELECT)
private List<CustomerPartyFieldMappingEntity> customerPartyFieldMappingEntity=new ArrayList<CustomerPartyFieldMappingEntity>();
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL )
@JoinColumn(name = "customer_party_mapping_id",referencedColumnName="id")
@Fetch(value = FetchMode.SUBSELECT)
private List<CustomerPartyOtherDocumentEntity> otherDocumentsList=new
ArrayList<>();
@OneToOne( cascade={ CascadeType.PERSIST, CascadeType.MERGE })
@JoinColumn(name = "customer_name_screening_id", referencedColumnName="id")
private CustomerNameScreeningEntity customerNameScreeningEntity;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL )
@JoinColumn(name = "customer_party_mapping_id")
@Fetch(value = FetchMode.SUBSELECT)
private List<CustomerDocInfoTrackingEntity> customerDocInfoTrackingList=new
ArrayList<CustomerDocInfoTrackingEntity>();
}
我正在打电话
List<CustomerPartyMappingEntity> customerPartyMappingEntityList = customerPartyMappingRepository.findByCustmerId(customerid);
它获取所有嵌套映射的实体列表,而我只需要CustomerPartyMappingEntity 及其customerPartyFieldMappingEntity 嵌套对象列表。
我们将不胜感激。
【问题讨论】:
标签: java spring jpa spring-data-jpa