Как сдать тест? (работал перед переносом моего кода на использование репозиториев). bs
сохраняются в базе данных после сохранения, но объект не обновляется. Что я должен сделать, чтобы достичь этого?Данные о пружинах jpa save
Учитывая эти классы:
@Entity
public class A {
@Id
private String id;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "aId")
private Set<B> bs= new HashSet<B>();
...
}
@Entity
public class B {
@Id
@GeneratedValue
private int id;
private String aId;
private String foo;
...
}
И Repository:
@RepositoryDefinition(domainClass = A.class, idClass = String.class)
public interface ARepository {
...
void save(A a);
...
}
Этот тест не в состоянии:
// "a" saved and flushed
B b = new B();
b.setAId(a.getId());
a.getBs().add(b);
ARepository.save(a);
assertTrue(b.getId() > 0);
перед использованием 'session.save' Мне не нужно было сохранять объект отдельно, чтобы получить Id, нет способа сохранить B ?, нет stackTrace, утверждение не выполняется. – xedo
Вижу, я действительно воссоздаю ваш тест, и все работает отлично. Единственное отличие, что я создаю репозиторий следующим образом: 'public interface ARepository extends CrudRepository {}' Не могли бы вы предоставить свою конфигурацию? –