Есть объект Заказ. Есть объект Сотрудник. Каждому Заказу соответствует несколько Сотрудников с разным логическими связями, например, автор, контролер и т.д. Каждый Сотрудник может быть привязан к нескольким Заказам и с разными видами связи (в одном заказе он автор, а в другом исполнитель).
Также есть потребность гарантировать что у каждого заказа как минимум есть автор, исполнитель и т.д.
Как это можно реализовать в Hibernate 4? Насколько я понимаю, можно сделать промежуточную сущность, которая будет связывать одни объекты и другие и иметь дополнительные поля. Но я не понимаю, как гарантировать наличие связи(
Hibernate - это ORM, не меньше, но и не больше. Он дает удобный объектный доступ к данным в БД. Но Hibernate не обязан разбираться в вашей бизнес-логике. Ну уровне реляционной БД нельзя гарантировать наличие связи many-to-many, логично, что и на уровне Hibernate этого тоже сделать нельзя. Соответственно, ответ на ваш вопрос - гарантировать наличие связи должна ваша бизнес-логика.