Аз съм в ситуация, в която трябва промяна на едностранчивите ми отношения в JPA, за да стане двупосочна (един Account
предприятието има списък с Advertisements
), така че, като се има предвид Advertisement
Мога да определя дали тя принадлежи или не Account
(от съображения за сигурност).
Изглежда, че междусекторната загриженост наложи молба за кандидатстване и не съм сигурна, че това е добре.
Също така, не знам какво недостатъци на използване на двупосочни взаимоотношения те.
Може ли някой да коментира и съветва?
Отговори:
1 за отговор № 1Нека се опитам да отговоря на въпроса с един пример:
@Entity
public clas Account {
@OneToMany(mappedBy = "account") // is mappedBy really necessary ?
private List<Advertisements> advertisements;
}
Непосредствени странични ефекти:
Липса на mappedBy
атрибута води до еднопосочен един към многои създава допълнителна съединителна маса, състояща се от чужди ключове. Това често се третира като катастрофа на СПА и има отрицателно въздействие върху представянето на ниво база данни (имате три таблици вместо две).
@Entity
public clas Advertisements {
@ManyToOne
@JoinColumn(name="ACCOUNT_ID")
private Account account; // is Account really necessary ?
}
Неподвижни странични ефекти:
Можете да се придвижвате от Advertisements
да се Account
така че по отношение на СПА имате достъп до път с асоциация с една стойност "SELECT adv.account FROM Advertisements adv"
, Предположението е, че не бихте могли да кажете, че това може да има отрицателно въздействие върху сигурността на ниво СПА.