
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.09.2017, 13:18
|
|||
|---|---|---|---|
|
|||
JPA .getReference работает не так, как заявлено |
|||
|
#18+
авторConsider the getReference() method of the EntityManager API. In section 10.2.3, you had a first look at this operation and how it may return a proxy. Let’s further explore this important feature and find out how proxies work: Код: java 1. 2. авторCalling the identifier getter (no field access!) doesn’t trigger initialization. This code doesn’t execute any SQL against the data- base . All Hibernate does is create an Item proxy: it looks (and smells) like the real thing, but it’s only a placeholder. In the persistence context, in memory, you now have this proxy available in persistent state, as shown in figure 12.1. По идее, getReference должен возвращать proxy-объект, за инициализацией которого контекст полезет в БД только по необходимости. Id у этого объекта уже есть, поэтому никаких селектов для .getId() происходить не должно, что логично и что отбражено в литературе. Однако, это наглая ложь и селект происходит. Проверял с хибернейтом и с ЭклипсЛинком. автор:run Main Hibernate: select department0_.id as id1_0_0_, department0_.name as name2_0_0_, department0_.type_id as type_id3_0_0_, department1_.id as id1_1_1_, department1_.name as name2_1_1_ from Department department0_ left outer join DepartmentType department1_ on department0_.type_id=department1_.id where department0_.id=? 3 Вот у меня вопрос возникает, а какого собственно чёрта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.09.2017, 13:48
|
|||
|---|---|---|---|
|
|||
JPA .getReference работает не так, как заявлено |
|||
|
#18+
Лысый дядька, http://docs.oracle.com/javaee/6/api/javax/persistence/PersistenceUnitUtil.html#getIdentifier(java.lang.Object) А кем заявлено-то? На спеку не похоже. Ну, и, вроде как, считается за багу. https://hibernate.atlassian.net/browse/hhh-3718 https://hibernate.atlassian.net/browse/HHH-7000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.09.2017, 05:52
|
|||
|---|---|---|---|
|
|||
JPA .getReference работает не так, как заявлено |
|||
|
#18+
BlazkowiczА кем заявлено-то? Да, собственно, хибернейтом и заявлено, я их документацию цитирую. авторНу, и, вроде как, считается за багу. Как-то все это очень странно. Я всегда считал, что Джава - это надежность проверенная годами, и ни как я не ожидал, что хибернейт это такое решето, в котором я при лёгком погружении начну откапывать баги как картошку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.09.2017, 07:16
|
|||
|---|---|---|---|
JPA .getReference работает не так, как заявлено |
|||
|
#18+
Лысый дядькахибернейт это такое решето, Лишний запрос это решето? Преувеличиваете). Это оптимизация. А в ней всегда не просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.09.2017, 08:02
|
|||
|---|---|---|---|
|
|||
JPA .getReference работает не так, как заявлено |
|||
|
#18+
Petro123Это оптимизация. А в ней всегда не просто. Что тут сложного то? Вернуть значение атрибута, которое заведомо известно, тоже мне бином Ньютона. Бага висит с 2012-го года. Это характеризует продукт. авторЛишний запрос это решето? Насколько я понял, .getReference() существует как раз для того, чтобы не было лишних запросов. По-вашему, я зря возмущаюсь, когда получаю запросы, используя метод, который априори не должен посылать запросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2122571]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 415ms |

| 0 / 0 |
