В основном нет.
Вы могли создать гигантский белый список принятых классов, но я думаю, что менее сумасшедший путь состоял бы в том, чтобы просто записать в документации для набора, что все, что движения являются этим набором , должно быть неизменным.
Редактирование: Другие люди предложили иметь неизменную аннотацию. Это прекрасно, но Вам нужна документация также. Иначе люди будут просто думать, "если я поместил эту аннотацию на свой класс, я могу сохранить его в наборе" и просто зажму его на чем-либо, неизменные и изменяемые классы одинаково. На самом деле я опасался бы иметь неизменную аннотацию на всякий случай, люди думают, что аннотация делает их класс неизменный.
select MyDate
from MyTable
order by case when MyDate is null then 1 else 0 end, MyDate
order by coalesce(date-time-field,large date in future)