- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先 - 我知道,似乎同一个问题已经被问了一百万次。然而,这与 DTO 有关,而不是与实体或缺失的级联有关。如果我自己创建一个实体并保存它,一切都很好。当我创建 DTO、使用 ModelMapper 转换它然后尝试保存转换后的实体时,会出现问题。如果您查看测试类,第一个测试(saveCarByEntity)通过,但第二个测试(saveCarByDto)产生错误。每个类的连接如下所示。预先感谢您。
实体:
@Data
@Entity
public class Car {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToOne(mappedBy = "car", cascade = CascadeType.PERSIST)
private CarDetails carDetails;
}
@Data
@Entity
public class CarDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToOne(mappedBy = "carDetails", cascade = CascadeType.PERSIST)
private Bumper bumper;
@OneToOne
private Car car;
}
@Data
@Entity
public class Bumper {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToOne
private CarDetails carDetails;
}
DTO-s:
@Data
public class CarDto {
private Long id;
private CarDetailsDto carDetails;
}
@Data
public class CarDetailsDto {
private Long id;
private BumperDto bumper;
private CarDto car;
}
@Data
public class BumperDto {
private Long id;
private CarDetailsDto carDetails;
}
测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
class CarTests {
@Autowired
private ModelMapper modelMapper;
@Autowired
private CarRepository carRepository;
@BeforeEach
public void setup() {
}
@Test
public void saveCarByEntity() {
Car car = new Car();
CarDetails carDetails = new CarDetails();
Bumper bumper = new Bumper();
car.setCarDetails(carDetails);
carDetails.setCar(car);
carDetails.setBumper(bumper);
bumper.setCarDetails(carDetails);
Car savedEntity = carRepository.save(car);
}
@Test
public void saveCarByDto() {
CarDto carDto = new CarDto();
CarDetailsDto carDetails = new CarDetailsDto();
BumperDto bumper = new BumperDto();
carDto.setCarDetails(carDetails);
carDetails.setCar(carDto);
carDetails.setBumper(bumper);
bumper.setCarDetails(carDetails);
Car car = modelMapper.map(carDto, Car.class);
Car savedEntity = carRepository.save(car);
}
}
产生错误:
nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.somepackage.model.Bumper.carDetails -> com.somepackage.model.CarDetails
汽车存储库:
@Repository
public interface CarRepostiory extends JpaRepository<Car, Long> {
}
最佳答案
我不知道你的模型映射器是做什么的,但我敢打赌,如果你在没有保险杠的情况下坚持汽车细节,然后再保留保险杠,它就会起作用。也许您也可以通过在 carDetails 的 Bumper 中使用 CascadeType.PERSIST 来使其工作?
关于java - 保存从 DTO 转换的实体时,hibernate 抛出 TransientPropertyValueException : object references an unsaved transient instance",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61301600/
我正在尝试实现这个核心数据栈: PSC <--+-- MainMOC | +-- BackgroundPrivateMOC 有些事情我其实不明白。也许我们的 Persist
将 ManagedObject 插入上下文后,我想稍后但在保存上下文之前获取它(我会在插入所有对象后保存)。如果先前未保存上下文,则稍后使用有关这些对象的获取来查询上下文似乎不会返回任何内容。有没有办
我正在尝试访问不属于工作区的文件数据,经过一些测试发现我的对象属于 FileStoreEditorInput 类型。我发现访问 FileStoreEditorInput 数据的解决方案使用了普通的 J
在 Grails 中保存 Trip 实例时出现以下异常: 2011-01-26 22:37:42,801 [http-8090-5] ERROR errors.GrailsExceptionResol
我在核心数据项目上遇到了一些问题。我有一个 NSArrayController,其中包含 NSManagedObjects 和 +/- 按钮。如果我在保存文件后删除行中的一个对象,它可以正常工作,但是
当我尝试同时上传两个调用同一 Controller 进行提交的文件时,会发生此错误。相关代码如下: Image 1
我们有一个典型的 Web 应用程序,它本质上是一个数据输入应用程序,有很多屏幕,其中一些屏幕具有一定程度的复杂性。我们需要提供标准功能,以确保如果用户在离开或关闭浏览器之前忘记单击“保存”按钮,他们会
这是我的域名。 import org.apache.commons.lang.builder.EqualsBuilder import org.apache.commons.lang.builder.
我正在使用 Hibernate,并且出现以下错误: org.hibernate.TransientObjectException:对象引用未保存的 transient 实例-在刷新之前保存 trans
我的用户位于处于ManyToOne关系的组织中,当使用现有组织创建用户时,我尝试将其分配给该用户而不创建新组织。 在我的服务中,以下是我创建用户的方法: @Override public UserIn
我有一个简单的一对一关系: 每个实体的独立 DAO。 事务由 Spring 管理。 PersonDao personDao = ctx.getBean(PersonDao.class, "perso
有一个著名的异常(exception): org.hibernate.StaleObjectStateException: Row was updated or deleted by another
使用 parse.com 和 JavaScript SDK。 我已经搜索过,但找不到合适的答案。 当我仅使用当前用户时,此功能有效。然而它应该做的是使用存储在变量 friendRequest 中的值查
我正在使用 JPA/Hibernate。 假设我有文件夹和文件。每个文件夹可以包含更多文件夹和文件。每个文件都知道它的根文件夹是什么(不是父文件夹)。 @Entity public class Fol
我正在使用 JPA/Hibernate。 假设我有文件夹和文件。每个文件夹可以包含更多文件夹和文件。每个文件都知道它的根文件夹是什么(不是父文件夹)。 @Entity public class Fol
遵循此文档:http://pm2.keymetrics.io/docs/usage/startup/#saving-current-process-list pm2 save 会将当前进程列表保存到
首先,我昨天尝试问过类似的问题 ( NHibernate many-to-many relationship question: can select, can't update ),但经过一个晚上的
我使用 Visual Basic 2010 Express。我有一个与我创建的本地 SQL 数据库链接的 DataGridView。我目前拥有它,用户可以单击一个按钮将他们的数据保存到数据库中,但是如
我在使用分布式文件系统的机器集群上运行 Jupyter 笔记本。 一段时间后,由于错误,我无法打开新笔记本: Close without saving? File "XXX.ipynb" has un
让我们使用这些类: class User #]> u.project_participations => #]> 到目前为止一切顺利 - AR 创建了 ProjectParticipation我自己
我是一名优秀的程序员,十分优秀!