请帮助我解决我在更新“Administarteur”时遇到的问题!
以下是课程详情!:
管理实体
公共类 AdministrationEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long idAdmin;
@Column(unique = true, nullable = false, length = 10)
private String cin;
@Column(nullable = false)
private String nomComplet;
@OneToMany(mappedBy = "administration",cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY)
private List<FournisseurEntity> fournisseurLis = new ArrayList<>();
@OneToMany(mappedBy = "administration",cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.EAGER)
private List<ClientEntity> clientList = new ArrayList<>();
@OneToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY)
private UtilisateurEntity utilisateur;
管理服务Impl
@Override
public String update(AdministrationDto administrationDto) {
LOGGER.debug("Start methode update: {}",administrationDto);
try {
AdministrationDto admin = administrationMapper.administrationEntityToDto(administrationRepo.findById(administrationDto.getIdAdmin()).orElse(null));
if(admin == null){
LOGGER.debug("adminDto is null");
return "Cette Administrateur {"+administrationDto.getIdAdmin()+"} n'exist pas!";
}else{
LOGGER.debug("adminDto not null");
administrationRepo.save(administrationMapper.administrationDtoToEntity(administrationDto));
return administrationDto.getCin();
}
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
有多个问题使任何人都很难帮助您
话虽这么说,用
@Transactional
中的 org.springframework.transaction.annotation
注释服务方法可以解决问题。
这将确保您在方法中时始终有可用的会话。这样,当您获取延迟初始化的集合(
utilisateur
)时,它不应该失败(同样,取决于您如何调用该方法)。