customer
의 현재 선택된 payment
정보를 저장해야 구매 정보를 사용할 수 있습니다. 고객이 많은 신용 카드를 보유 할 수 있으므로 OneToMany
으로 모델링했습니다. 현재 선택된 결제 정보를 다른 필드 (아래 참조)로 저장하는 것에 대해 의문의 여지가 있습니다. Set<Payment>
및 Payment
필드를 나란히 놓으면 모양이 올바르지 않게 보입니다. 고객 분류에 현재 선택된 결제 정보를 저장합니다
@Entity
class Customer{
...
@OneToMany(cascade=CascadeType.ALL,orphanRemoval=true)
Set<Payment> payments;
Payment currentlySelectedPayment;//?
}
@Entity
@Table([email protected](columnNames={"cardType","cardNumber"}))
public class Payment{
...
String cardType;
String cardNumber;
String nameOnCard;
...
Date dateOfExpiry;//day,month,year of expiry
}
것을 표시하기 위해 몇 가지 플래그를 사용 할 수 있습니까?이 할 수있는 더 좋은 방법이 있나요
void addNewCard(...){
Payment payment = get_from_db_or_create_new_payment(...);
if(!customer.getPayments().contains(payment)){
customer.getPayments().add(payment);
}
...
}
void setCurrentlySelectedPaymentForCustomer(Long paymentId,..){
Payment payment = getPaymentFromDB(paymentId);
if(!customer.getCurrentlySelectedPayment().equals(payment)){
customer.setCurrentlySelectedPayment(payment);
}
...
}