Ответы пользователя по тегу Hibernate
  • Почему Hibernate пытается создать сущность с нулевым id?

    @sirs
    Если у Вас mysql, то я бы порекомендовал сделать так:

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "contract_id")
        private int contractId;

    т.е. поменять strategy на IDENTITY.

    И в таблице 'Contract' в базе добавить AUTO_INCREMENT PRIMARY KEY, чтобы mysql сам генерил ключи.
    Ответ написан
    1 комментарий
  • Почему не выполняется sql-запрос в Hibernate?

    @sirs
    Ваша ошибка связана с тем, что hibernate возвращает List и не знает какой будет тип во время компиляции. Нужно добавить преобразование к нужному Вам типу.
    Попробуйте
    List<Tariff> tariffs = (List<Tariff>) session.createSQLQuery(sql).list();


    и @SuppressWarnings("unchecked") если смущают warnings.
    Ответ написан
    Комментировать
  • Насколько полезен Hibernate? Сильно ли он упрощает работу?

    @sirs
    Полезен или нет зависит от вашего проекта. Если у вас парочка сущностей и 10 методов, в которых идёт обращение к базе - тогда хибернейт вам не нужен. Если у вас большой, растущий проект, где десятки и сотни сущностей и много CRUD операций - без JPA, hibernate, spring data и т.д. вам не обойтись. Хибернейт сильно упрощает жизнь в простых вещах, но сильно усложняет в сложных. Также можно рассмотреть профит применения хибернейта как получение кэша нескольких уровней из коробки.
    Посмотрите литературу в общем по ORM проблеме и JPA, без привязке к конкретной реализации, которой и является хибернейт.

    П.С. А добавлять какой-то код или логику в сеттеры я бы крайне не рекомендовал. Есть набор заповедей хорошего разработчика - SOLID, первый принцип - Single responsibility - "каждый объект должен иметь одну обязанность и эта обязанность должна быть полностью инкапсулирована в класс". А в вашем случае есть какая-то модель/бин - который в полях содержит данные - это и есть его единственная обязанность, а логика по чтению-записи в базу не должна этот объект интересовать в принципе.
    Ответ написан
    Комментировать