Мне было интересно что-то. Скажем, у нас есть простая связь между Employee и Phone:
@Entity
public class Employee {
@Id
@Column(name="EMP_ID")
private long id;
...
@OneToMany(mappedBy="owner")
private List<Phone> phones;
...
}
@Entity
public class Phone {
@Id
private long id;
...
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="OWNER_ID")
private Employee owner;
...
}
Предположим, что у Работника нет телефонов, нет записей в телефонной таблице. Если бы у меня был кусок кода, который получает телефоны сотрудника и итерации по ним по какой-либо причине
for (Phone phone : employee.getPhones())
{
...
}
Будет ли геттер переназначать NULL или пустую коллекцию и будет ли стратегия рисования играть роль.
Если я правильно помню, у hibernate есть своя реализация коллекции с использованием прокси и для LAZY fetch, она создает экземпляр с одним из них и, когда необходимо, извлекает данные из таблицы (правильно, если я ошибаюсь). Таким образом, в то время, когда будет вызван приемник, попробуйте извлечь данные из таблицы, получить пустой набор в качестве результата и вернуть пустую коллекцию. (Это то, что я думаю). Или я должен всегда проверять, является ли результат getter равным NULL или нет?