Я делаю приложение в Java EE (Jersey) с JPA, где у меня проблема с неинициализированными объектами. У меня есть 3 объекта. Автомобиль, владелец, дом, где автомобиль может иметь несколько владельцев и владельцев, может иметь несколько домов. Когда я вернусь (entityManager.find) автомобиль, владелец будет инициализирован. Когда я вернусь домой, владелец будет инициализирован, но нет. Я хотел бы иметь возможность называть что-то вроде House.getOwner(). GetCar(). GetId(). Теперь я должен позвонить в Дом, а затем позвонить на Владельца, чтобы получить Автомобиль. Как это разрешить?Java JPA FetchType.EAGER не работает
@Entity
@Table(name = "House")
public class HouseEntity {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "owner_id", nullable = false)
private OwnerEntity owner;
}
@Entity
@Table(name = "Owner")
public class OwnerEntity {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "car_id")
private CarEntity car;
@OneToMany(mappedBy = "owner")
@JoinColumn(name = "house", nullable = false)
private Set<HouseEntity> house;
}
@Entity
@Table(name = "Car")
public class CarEntity {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@OneToMany(mappedBy = "owner")
private Set<OwnerEntity> owner;
}
Редактировать 1: Извините, в картографии произошла ошибка, классы хорошо работают. Но проблема с инициализацией остается.
попробуйте использовать Hibernate.initialize() –
Что-то не так здесь: OwnerEntity отображает себя с помощью Set владелец? Разве это не домов? –
nomoa
Да, я совершил ошибку там. Я эти объекты большие, поэтому я отредактировал их, чтобы они были короче, но ошибка произошла. – user1816532