Я пытаюсь создать решение для БД в соответствии с требованиями моего предложения клиента.Мне нужно прочитать файл и сохранить данные в нескольких таблицах, которые в основном связаны друг с другом.
Я создал классы сущностей и их ассоциации, как показано ниже.Но с текущим подходом я вижу проблему, расширяющую предложения от Купонов до Вознаграждений.Если я создаю другую сущность для вознаграждений, мне нужно обновить класс CustomerEntity
и добавить еще одну @OneToMany
связь с новой сущностью.
@Entity(name = "METADATA")
public class MetadataEntity {
Metadata Id
Offer description
//Setters & Getters
}
@Entity(name = "CUSTOMER")
public class CustomerEntity {
Customer Id
Customer Name
CouponEntity (OneToMany - Join column Coupon Code)
//Setters & Getters
}
@Entity(name = "PROFILE")
public class ProfileEntity {
Profile Id
CustomerEntity (OneToOne - Join Column Customer Id)
//Setters & Getters
}
@Entity(name = "COUPON")
public class CouponEntity {
Coupon Code
Amount
Expiry
//Setters & Getters
}
@Entity(name = "OFFER")
public class OfferEntity{
Id
MetadataEntity(ManyToOne - Join column Metadata Id)
ProfileEntity(ManyToOne - Join column Profile Id)
//Setters & Getters
}
А из моего класса DAO я использую OfferRepository
класс, связанный с Offer.
@Repository
public interface OfferRepository extends JpaRepository<OfferEntity, String> {}
@Autowired
OfferRepository offerRepo;
public class DaoImpl {
createOffer(OfferEntity offer){
offerRepo.save(offer);
}
readOffers(){
offersList = offerRepo.findAll();
for-each offer:offersList {
//access all customer information & offer information (could be a coupon or rewards)
offer.getProfile().getCustomer().getCoupons();
}
}
}
Я пытаюсь найти решение, в котором мне не нужно обновлять какой-либо из моих существующих объектов.классы, если я расширяю предложения.