Я занимаюсь разработкой веб-приложения с использованием Java, Spring и JPA. Вариант использования, который я хотел бы обсудить с вами, довольно прост, он состоит только из двух сущностей, Wallet
и Transaction
. В частности, Wallet
может иметь два вида транзакций: входящие и исходящие . Давайте посмотрим на структуру этих двух классов.
@Entity
public class Wallet{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long walletId;
@OneToMany(mappedBy="fromWallet", orphanRemoval = true)
private List<Transaction> outgoingTransactions;
@OneToMany(mappedBy="toWallet", orphanRemoval = true)
private List<Transaction> incomingTransactions;
....
}
public class Transaction{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long transactionId;
@ManyToOne
@JoinColumn(name = "wallet_id_from")
private Wallet fromWallet;
@ManyToOne
@JoinColumn(name = "to_wallet_id")
private Wallet toWallet;
....
}
Вот так выглядит мой код прямо сейчас, и он отлично работает. У меня вопрос: как я могу изменить код, чтобы вместо двух разных списков у меня был только один для входящих и исходящих транзакций? Так что я хотел бы что-то вроде этого:
@Entity
public class Wallet{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long walletId;
@OneToMany(mappedBy="{'fromWallet' or 'toWallet'}", orphanRemoval = true)
private List<Transaction> transactions;
....
}
Можно ли сделать что-то подобное? Или я должен придерживаться текущего решения (два разных списка)?