The solution was using a native query, which bypasses all of the loading that hibernate does and directly executes the delete command:
@Transactional
public void delete(Long id) {
long deleted = repository.delete("id", id);
if (deleted == 0) {
throw new NotFoundException("Game not found with id: " + id);
}
}