Я использую данные Spring JPA с гибернацией на задней панели с H2 в базе данных памяти.Spring JPA для хранения объекта внутри объекта
У меня есть следующие объекты:
@Entity
public class EntityA {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long entityAId;
@Column
@NotEmpty
private String name;
@OneToMany(mappedBy = "entityA")
private List<EntityB> entityBList;
//getter and setters
@Entity
public class EntityB {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
@NotEmpty
private String name;
@ManyToOne
@JoinColumn(referencedColumnName = "entityAId")
private EntityA entityA;
//getter and setter
Вот мои хранилища:
@Repository
public interface EntityARepository extends JpaRepository<EntityA, Long> {
}
@Repository
public interface EntityBRepository extends JpaRepository<EntityB, Integer> {
@Query(value = "FROM EntityB b where b.entityA.entityAId = ?1")
public List<EntityB> getEntityBByEntityAId(Long entityAId);
}
Мой вопрос:
Если у меня есть экземпляр entityA
с 'п' экземплярами entityB
в нем, и если я назову entityARepository.save(entityA);
, тогда он сохранит entityB (возможно ли это?)? Я попробовал это, но это не сработало для меня. Я пробовал делать
entityARepository.save(entityA);
entityBRepository.save(entityBList);
Который спас результат. Но когда я получил entityA
с использованием метода findOne
из репозитория на entityAId
, я получаю пустой список без каких-либо экземпляров EntityB
.
Я даже попробовал запрос entityBRepository
отдельно по entityAId
, но я получаю пустой список результатов entityB
.
Может кто-нибудь, пожалуйста, помогите мне узнать, что именно пропало?
Спасибо, но это не работает для меня :( – SMA
Это должно работать, что-то еще должно быть неправильным в вашей конфигурации. Как вы впрыснуть свой entityARepository? Как вы это проверить? Можете ли вы показать мне свою конфигурацию пружины? – user3227576
Я отредактировал свой ответ, пожалуйста, проверьте конфигурацию spring- и test-config. – user3227576