• ORM Hibernate: Проблема с маппингом

    im_berzki
    @im_berzki Автор вопроса
    Я, естественно, пробовал через NetBeans и ему подобные средства (тот же Visual Paradigm), генерировать маппинг…

    Проблема в том, что автоматом получается полная ерунда.
    Пример:
    Тот маппинг, который я сделал вручную, позволяет использовать такие конструкции:

    user.getProjects().get(0).getIntervals()
    user.getIntervals().get(0).getProject()


    То, что генерируется автоматом в NetBeans — просто связывает соседние таблицы, т.е. projects с users_on_projects, users с users_on_projects. В этом случае, большая часть преимуществ использования хибернейта теряется ((
    Наколхозить таким образом можно, все будет работать прекрасно, но это будет КОЛХОЗ. Для поиска проектов, связанных с пользователем, придется делать отдельный запрос к users_on_projects(и т.д.), вместо user.getProjects(); И это — проваааал! ((

    Автоматическую геренацию использовать можно(и нужно, где возможно), но, для сложных случаев, все равно придется много править руками.

    ps на stackoverflow посоветовали копать в сторону ternery associations, для связи intervals с другими таблицами через users_on_projects. Попробую пойти в этом направлении…
  • ORM Hibernate: Проблема с маппингом

    im_berzki
    @im_berzki Автор вопроса
    .
    .
    .
    .
    Есть подозрения, что нужно копать в сторону
    Ternary associations
  • ORM Hibernate: Проблема с маппингом

    im_berzki
    @im_berzki Автор вопроса
    Hibernate генерирует следующий SQL при попытке сделать вставку:

    insert into intervals (finish_time, interval_type_id, start_time) values (?, ?, ?)

    Выдает ошибку:
    234 - Field 'users_on_projects_id' doesn't have a default value

    Ну так что? Мне никто так и не поможет? Неужели на хабре нет ни одного специалиста по хибернейту/ORM ???
  • ORM Hibernate: Проблема с маппингом

    im_berzki
    @im_berzki Автор вопроса
    ПЕЧАЛЬ ((((
    Рано радовался…
    Решена только на чтение… При попытке записать новый интервал — ошибка…
  • ORM Hibernate: Проблема с маппингом

    im_berzki
    @im_berzki Автор вопроса
    в Java, если конструктор не определен явно, то, используется конструктор «по-умолчанию», который идентичен «чистому» (пустому).

    маппинг в *.hbm.xml понимаю, но предпочитаю аннотации, т.к. считаю их (для себя) более удобными способом, да и опыта с ними больше.

    hibernate.cfg.xml — присутствует, с настройками url к БД, драйвера и т.д.
    Ссылки на классы с маппингом, есть. Так что, тут все в порядке.