spring.application.name=payday
spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/PayDayDB?createDatabaseIfNotExist=true
spring.datasource.username=${DB_USERNAME:Mysql DB이름}
spring.datasource.password=${DB_PASSWORD:비밀번호}
spring.jpa.hibernate.ddl-auto=update
@Transactional
@Override
public Receipt updateReceiptContentsById(Long receiptId, Receipt receipt) {
Optional<Receipt> qs = receiptRepository.findById(receiptId);
if (qs.isPresent()) {
Receipt p = qs.get();
//List Clear
p.getReceiptContents().clear();
//orphan DropTable : receiptContent
Receipt flushed = receiptRepository.save(p);
List<ReceiptContent> data = receipt.getReceiptContents();
for (ReceiptContent res : data) {
flushed.getReceiptContents().add(res);
res.setReceipt(flushed);
}
return receiptRepository.save(flushed);
} else {
throw new RuntimeException("none");
}
}
}
이번엔 entity graph와 dto 안쓰고 해봄.