UserEntity:
Код: Выделить всё
@Entity
@Table (name = "users", uniqueConstraints = @UniqueConstraint(columnNames={"name"}))
public class UserEntity {
@Id
@GeneratedValue (strategy = GenerationType.SEQUENCE, generator = "user_id_seq")
private Long id;
@Column( name = "name")
private String name;
private int level;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user")
private Set berryInventory;
Код: Выделить всё
@Entity
@Table (name = "berry_inventory")
public class BerryInventoryEntity {
@Id
@GeneratedValue (strategy = GenerationType.SEQUENCE, generator = "inventory_id_seq")
private Long id;
@ManyToOne (optional = false)
@JoinColumn (name = "user_id")
private UserEntity user;
@ManyToOne (optional = false)
@JoinColumn (name = "berry_id")
private BerryEntity berry;
private int quantity;
}
Код: Выделить всё
BerryInventoryEntity berryInventory = BerryInventoryEntity.builder()
.berry(berry)
.user(user)
.quantity(1)
.build();
berryInventoryRepository.save(berryInventory);
Код: Выделить всё
@Query("SELECT b FROM BerryInventoryEntity b WHERE b.user = :user")
Iterable findInventoryOfUser(UserEntity user);
Код: Выделить всё
Iterable berryInventoryCreated = berryInventoryRepository.findInventoryOfUser(userCreated);
Если FetchType имеет значение «LAZY», UserEntity поставляется с экземпляром BerryInventoryEntity, который выдает исключение:
Код: Выделить всё
Method threw 'org.hibernate.LazyInitializationException' exception. Cannot evaluate com.dpr.berry.domain.entities.UserEntity.toString()
Могу ли я получить BerryInventoryEntity, что его UserEntity также не содержит BerryInventoryEntity? Как правильно решить эту проблему?
Подробнее здесь: https://stackoverflow.com/questions/798 ... entity-but
Мобильная версия