Я пытаюсь решить, какую аннотацию использовать. Можете ли вы высказать свое мнение?
Что у меня сейчас:
@Entity
public class Balance {
@Embedded
private Amount amountAtm;
@Embedded
private Amount amountBranch;
@Embedded
private Amount amountVault;
}
@Embeddable
public Amount {
private BigDecimal debit;
private BigDecimal credit;
}
Что я хочу изменить на:
@Entity
public class Balance {
@ElementCollection
private Map<AmountType, Amount> amounts;
}
public enum AmountType {
ATM, BRANCH, VAULT;
}
Сумма останется прежней.
Причина этого изменения заключается в том, что суммы в балансе концептуально являются сбором. Я либо отображаю / меняю все из них одновременно, либо ничего вообще. Поэтому я отношусь к ним как к группе.
Вопросы:
В настоящее время суммы хранятся в той же таблице, что и сальдо (я перезаписываю имена столбцов, это не показано в коде). Тем не менее, если я внесу это изменение, НЕТ СПОСОБА, я могу сохранить все эти данные в одной таблице. Я должен был бы хранить суммы в отдельной таблице. Это правильно?
Учитывая, что теперь мне придется создавать JOIN-соединения в SQL и т. Д. Как это повлияет на производительность? Допустим, я использую Oracle 11g и у меня 100 000 записей баланса (и, следовательно, 300 000). суммы). Заметит ли я замедление в приложении после изменения?