У меня есть два класса сущностей, как показано ниже, и соответствующий интерфейс репозитория
Объект 1
@Data
@NoArgsConstructor
@Entity
@Table(name = "person_details")
public class PersonDetails {
@Id
private String pid;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "exist_flag")
private String existFlag;
@OneToOne(mappedBy = "personDetails", cascade = CascadeType.ALL)
private AddressDetails addressDetails;
}
Объект 2
@Data
@NoArgsConstructor
@Entity
@Table(name = "address_details")
public class AddressDetails {
@Id
private String pid;
private String street;
@Column(name = "address_exist_flag")
private String addressExistFlag;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "pid", insertable = false, updatable = false)
private PersonDetails personDetails;
}
Соответствующие интерфейсы репозитория
public interface PersonDetailsRepository extends JpaRepository<PersonDetails, String> {
}
public interface AddressDetailsRepository extends JpaRepository<AddressDetails, String> {
}
Если я вызываю findAll для экземпляра PersonDetailsRepository, я должен получить подробную информацию о и PersonDetails, и AddressDetails , которые я получаю с текущей реализацией.
Если я вызываю findAll в экземпляре AddressDetailsRepository, я должен получить детали только AddressDetails , которые я не получаю с текущей реализацией. Как я могу добиться этого, не влияя на findAll для экземпляра PersonDetailsRepository?