src/main/java/hexlet/code/mapper/ReferenceMapper.java
package hexlet.code.mapper;
import hexlet.code.model.BaseEntity;
import jakarta.persistence.EntityManager;
import org.mapstruct.Mapper;
import org.mapstruct.MappingConstants;
import org.mapstruct.TargetType;
import org.springframework.beans.factory.annotation.Autowired;
@Mapper(
componentModel = MappingConstants.ComponentModel.SPRING
)
public abstract class ReferenceMapper {
@Autowired
private EntityManager entityManager;
public final <T extends BaseEntity> T toEntity(Long id, @TargetType Class<T> entityClass) {
return id != null ? entityManager.find(entityClass, id) : null;
}
}