我有一个父实体和一个具有一对多关系的子实体。
使用@DataJpaTest(即配置内存数据库)时,以下内容按预期工作:
LOG.info("Creating stops");
Stop stop1 = new Stop(new Time(0), "Acton Town", new HashSet<>());
Set<Stop> stops = new HashSet<>();
stops.add(stop1);
LOG.info("Creating and persisting routes");
Route route = routeRepository.save(new Route("something", "return"));
LOG.info("Adding stops to route");
stops.forEach(route::addStop);
它正确地插入了路线和每个孩子,我可以稍后获取路线并获取相同的信息。
但是,当我在使用真实数据源(本地 MySQL 数据库)的同时在服务中重复此操作时,似乎没有发生 CASCADE.ALL 持久化,我最终没有插入停靠点,但路由被持久化并分配了一个ID。
我已经通过在配置双向关系的父级中使用“addEntity”方法来遵循站点周围的建议,但它在测试套件之外不起作用。
有谁知道这可能是为什么?