Представьте, что у меня есть высокоуровневая сущность, называемая "PkgGroup".
PkgGroup unpersistedPkgGroup = new PkgGroup();
Класс PkgGroup будет представлять собой некоторый класс JPA, такой как
@Entity
@Table(name = "PKG_GROUP")
@XmlRootElement
public class PkgGroup implements Serializable {
@Id
@NotNull
@Column(name = "PKG_GROUP_ID")
private BigDecimal pkgGroupId;
@Size(max = 50)
@Column(name = "CMS_CODE")
private String cmsCode;
.........
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true, mappedBy = "pkgGroup")
private Collection<PkgSellableCliGroup> pkgSellableCliGroupCollection = new ArrayList<>( );
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true, mappedBy = "pkgGroup")
private Collection<PkgSellableMembershipType> pkgSellableMembershipTypeCollection = new ArrayList<>();
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true, mappedBy = "pkgGroup")
private Collection<PkgSellableSourceMarket> pkgSellableSourceMarketCollection = new ArrayList<>();
.......
}
Есть Address
объекты типа классав объекте "unpersistedPkgGroup
". (только представьте unpersistedPkgGroup.getPkgSellableCliGroup().getAddress()
retuns Address
список объектов типа). Но я точно не знаю, как перемещаться, чтобы получить Address
объекты из объекта "unpersistedPkgGroup
".
Класс адреса выглядит так,
@Entity
@Table(name = "MAIN_ADDRESS")
public class Address
{
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "address_seq")
@SequenceGenerator(name = "address_seq", sequenceName = "NIMASH_TEST_ADDRESS_SEQ", allocationSize = 1, initialValue = 1)
private int addressId;
@Column
private String firstLane;
@Column
private String secondLane;
@Column
private String area;
........
}
Обратите внимание, что класс Address
имеет аннотацию@Table(name = "MAIN_ADDRESS")
. Я хочу реализовать такую функцию, как
public List<Object> extractReleventObjectsIncludingAnnotation(PkgGroup object, String annotationString){
.......
}
, которую можно использовать как
List<Address> retrivedAddresses = (List<Address>)extractReleventObjectsIncludingAnnotation(unpersistedPkgGroup ,"@Table(name = "MAIN_ADDRESS")");
Я использую Hibernate и Spring в проекте. Есть ли способ реализовать эту функцию? обратите внимание, что unpersistedPkgGroup еще не существует.