Предположим, у меня есть модель с отношениями «многие ко многим» или «многие к одному». Этой модели хотелось бы этого:
Код: Выделить всё
@Entity
public class A {
// other fields ...
@OneToMany(...)
private List bEntities = new ArrayList();
}
Не было бы смысла использовать метод установки для этого списка, но нам понадобится метод получения, чтобы иметь возможность изменять список:
Код: Выделить всё
public List getBEntities() { return bEntities; }
Однако в данном случае SpotBug жалуется на
Код: Выделить всё
EI_EXPOSE_REF: A.getBEntities() may expose internal representation by returning A.bEntities
Я мог бы отобразить все отношения CRUD в модели, например:
Код: Выделить всё
addB();
findBById();
// and so on and so forth
но это не только по-прежнему будет раскрывать объекты B, но и, насколько я понимаю, не будет нести ответственность за модель. Каков правильный способ сделать это? Должен ли я просто отключить предупреждение для объектов, управляемых JPA?
Подробнее здесь:
https://stackoverflow.com/questions/797 ... ity-models