Существует простая модель ассоциированных организаций:Получить идентификатор связанного объекта после сохранения
класс MainModel
@Entity
@Table(name = "main_model")
public class MainModel
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "id_main_model", referencedColumnName = "id")
private List<AssociatedModel> am_collection;
public MainModel() { }
public long getId()
{
return this.id;
}
public void addAssociated(AssociatedModel am)
{
am_collection.add(am);
}
}
класс AssociatedModel
@Entity
@Table(name = "associated_model")
public class AssociatedModel
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
public AssociatedModel() { }
public long getId()
{
return this.id;
}
}
Простейшее JPA хранилище MainModel
public interface MainModelDAO extends JpaRepository<MainModel, Long>
{
}
и, наконец, метод контроллера для создания и сохранения экземпляра AssociatedModel
@RequestMapping("/url")
public String createAssociated(@RequestParam("id_mainmodel") long id_mainmodel, @RequestBody AssociatedModel newAm)
{
MainModel mm = MainModelDAOobject.findOne(id_mainmodel);// MainModelDAOobject - @Autowired
mm.addAssociated(newAm);
MainModelDAOobject.saveAndFlush(mm);
return String.valueOf(newAm.getId());// get Id of associated saved object
}
Associated obect сохраняет в базу данных правильно, но идентификатора значения этого объекта, допускаемом его методом getId()
, всегда нулевой. Как я могу правильно получить идентификатор сохраненного связанного объекта?
это не решит вашу проблему, но данные весны довольно круты! Посмотри на это. –