Утверждает способ явной проверки предположений, что Ваш код делает, который помогает Вам разыскать много ошибок путем сужения, каковы возможные проблемы могли быть. Они обычно только оценены в специальной сборке "отладки" Вашего приложения, таким образом, они не замедлят версию финальной версии.
Скажем, Вы записали функцию, которая взяла указатель в качестве аргумента. Существует хороший шанс, что Ваш код предположит, что указатель является непустым, итак, почему не явно проверяют это с утверждением? Вот то, как:
#include <assert.h>
void function(int* pointer_arg)
{
assert(pointer_arg != NULL);
...
}
важная вещь отметить состоит в том, что выражения, которые Вы утверждаете, никогда не должны иметь побочных эффектов, так как они не будут присутствовать в сборке конечных версий. Поэтому никогда не делайте что-то вроде этого:
assert(a++ == 5);
Некоторым людям также нравится добавлять небольшие сообщения в их утверждения, чтобы помочь дать им значение. Так как строка всегда оценивает к истинному, Вы могли записать это:
assert((a == 5) && "a has the wrong value!!");
У вашего пациента есть ссылка на поставщика, а также идентификатор поставщика в качестве свойства. Я бы, вероятно, избавился от свойства идентификатора поставщика на пациенте и просто имел ссылку на поставщика. Тогда ваш запрос должен выглядеть примерно так:
select pat.patientId, pat.patientName
from patient as pat
left join pat.provider as pro
Чтобы присоединиться, вам нужен путь ассоциации от вашего пациента к вашему провайдеру, которым в данном случае является pat.provider. Затем hibernate будет автоматически использовать «столбец», указанный в сопоставлении «многие-к-одному», для присоединения к таблице поставщика. В вашем случае соединение не