Pull to refresh

Comments 7

Какой-то набор несвязанных фактов. Причем 95% текста напрямую к hibernate не относится.
Несмотря на то, что вы не встречали эту информацию в одном месте, все это изложено в книге «Java Persistence with Hibernate, 2 ed».
Я не пишу на Java поэтому пользуюсь возмодностью узнать инфинормацию от специалиста.
В orm которые я использую под node.js и сейчас пытаюсь использовать для go нет двух очень удобных, всем нужных возмодностей.
1) переводимые поля — по сути это отношение один-ко-многим. но хотелось бы использовать их как в php-doctrine то есть так что это плоская таблица с установленной локалью
2) автогенерация миграции которая приводит текущую базу данных к состоянию соответсвующему определению объектов

Есть ли аналоичное что-то в hibernate&

Еще могу добавить:


  • Процедура Code Enhancement-а модифицирует байт-код, перехватывая вызовы геттеров и сеттеров для более эффективной инициализации LAZY-полей и оптимального dirty-checking-а. Для этого требуется настроить maven или gradle plugin. В JavaEE контейнерах, а также Spring Data делают code enhancement в рантайме при загрузке классов. Для standalone приложений тоже есть определенный трюк для runtime code enbancement.
  • Hibernate не умеет EntityGraph.fetchgraph для "@Basic" полей, даже если сделан code enhancement. То есть если вам нужно загрузить только часть полей сущности, придется запрашивать их въявную в select-е. Issue в Jira уже более 5 лет: https://hibernate.atlassian.net/browse/HHH-8776
  • Для некоторых запросов c JOIN-ами Hibernate выдает неверную семантику. Для ознакомления: https://virgo47.wordpress.com/2014/10/09/jpa-is-it-worth-it-horror-stories-with-eclipselink-and-hibernate/ Статья старая, но с тех пор много не поменялось.
  • Есть определенные проблемы с compound primary keys, например не все базы данных могут использовать compound PKs в семантике IN(), однако Hibernate их генерирует как ни в чем ни бывало.
Проблему неправильного часового пояса при сохранении даты и времени в БД решаем четвёртым вариантом. Написали свой маппер, который преобразовывает Instant в String и передаёт эту строку в БД. Таким образом, если у нас Instant 10:00 UTC, то в БД будет всегда 10:00, независимо от часового пояса сервера и БД.

В чем разница между pooled и pooled-lo?
Смотрел статью от Влада М. но разницы не понял (

Sign up to leave a comment.

Articles