См. Эту строку:
<set name="recipeses" table="recipes" inverse="true" lazy="true" fetch="select">
Атрибут lazy="true"
означает, что набор будет загружаться лениво при доступе к нему:
User u = session.find(User.class, someId); // only load the data from the User table
Set<Recipe> recipes = u.getRecipes(); // returns the set, which is not loaded yet
int size = recipes.size(); // loads the recipes linked to the user from the database, and returns the size
Это необходимо знать,Прочтите документацию по Hibernate перед использованием Hibernate, иначе ваше приложение станет катастрофой.Вы ДОЛЖНЫ понять, как это работает, чтобы избежать ошибок.
Я настоятельно рекомендую вам использовать аннотации для отображения, а не XML.Он более стандартный, менее многословный и намного легче понять.