|
|
|
hashCode() в генерируемом Entity в Netbeant и в Intellij Idea через alt+Insert
|
|||
|---|---|---|---|
|
#18+
Добрый день :) Это даже не вопрос, а так, просто трёп, можно сказать, для понимания ситуации Netbeans генерирует Entity файлы вот с таким вот hashCode();: Код: java 1. 2. 3. 4. 5. 6. Idea по умолчанию генерит то же самое по сути: Код: java 1. 2. 3. 4. Но если Идее сказать, что id у нас будет non-null, то получим: Код: java 1. 2. 3. 4. Вот здесь 21120813 было упоминание от Blazkowicz, о том, что: С hashCode(), кстати в ORM не тривиально. Если у вас сущности не сохранены ещё, то у них у всех hashCode 0. Может боком вылезти. Вот в связи с этим вопрос, как избежать такой ситуации, когда несколько сущностей с одним хешом равным 0 будут в рантайме? Неужели Netbeans так не предусмотрительно генерит такие файлы. Хотя всё логично и понятно, почему так, ведь IDE не знает какие поля у нас будут. Я предполагаю, что там это как-то обходится при генерации, а именно не нужно ей пользоваться :)) И нужно ручками генерить методы уже после добавления, к примеру поля private String name; что-то подобное: Код: java 1. 2. 3. 4. 5. 6. Сам я сталкивался с такой ситуацией и не знал почему у меня не сохраняются или частично не сохраняются данные БД, теперь я предполагаю, что та ситуация была связана именно с тем, что я не глядя доверял автогенерируемому файлу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2018, 10:40 |
|
||
|
hashCode() в генерируемом Entity в Netbeant и в Intellij Idea через alt+Insert
|
|||
|---|---|---|---|
|
#18+
Nixicкак избежать такой ситуации, когда несколько сущностей с одним хешом равным 0 будут в рантайме?- переопределять вручную или воспользоваться lombok ( @EqualsAndHashCode ) (например, создается новый объект для последующей вставки), - это больше, имхо, проблема дочерних сущностей, когда они вытягиваются через mappedBy (там уже как определишь, если тип коллекции дочерних сущностей определено в виде Set - тогда обязательно нужно переопределять hashCode/equals, а в случае с List - не критично - но могут быть дубликаты (: ) - ORM проксирует все обработанные ею сущности (заворачиваются в промежуточные объекты - там хранится прочая мета информация о самой сущности, включая hashCode) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2018, 16:14 |
|
||
|
hashCode() в генерируемом Entity в Netbeant и в Intellij Idea через alt+Insert
|
|||
|---|---|---|---|
|
#18+
NixicИ нужно ручками генерить методы уже после добавления, к примеру поля private String name; что-то подобное:не нужно переопределять и писать сравнение объектов. Ты же хотел магии спринга? Тогда зачем заниматься этой ерундой? Если сессии короткие и ты не отсоединяешь объекты от нее, то хибер автоматом разруливает равенство объектов. Кроме того не держи объекты без ID. Это самое главное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2018, 17:34 |
|
||
|
hashCode() в генерируемом Entity в Netbeant и в Intellij Idea через alt+Insert
|
|||
|---|---|---|---|
|
#18+
Nixicтеперь я предполагаю, что та ситуация была связана именно с тем, что я не глядя доверял автогенерируемому файлу.а ты разберись более конкретно, как сабж на это может повлиять. Разумеется, магию нужно проверять. Иногда это дольше чем вообще без магии))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2018, 17:53 |
|
||
|
hashCode() в генерируемом Entity в Netbeant и в Intellij Idea через alt+Insert
|
|||
|---|---|---|---|
|
#18+
Usmanно могут быть дубликаты (: )вообще, надо разобраться кто виноват в дубликатах. Ведь так можно по БЛ дважды зарплату начислить))). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2018, 18:39 |
|
||
|
hashCode() в генерируемом Entity в Netbeant и в Intellij Idea через alt+Insert
|
|||
|---|---|---|---|
|
#18+
Petro123Usmanно могут быть дубликаты (: )вообще, надо разобраться кто виноват в дубликатах. Ведь так можно по БЛ дважды зарплату начислить))).Думаю, что индексы и constraint-ы в базе не подведут! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 11:25 |
|
||
|
hashCode() в генерируемом Entity в Netbeant и в Intellij Idea через alt+Insert
|
|||
|---|---|---|---|
|
#18+
Usman, Конечно. Я всегда в sql думаю когда пишу union all, distinct, left/top join и проверяю отсутствие дубликатов. Поэтому вопрос автора надуман и он пошел по какому то сложному пути. Хотя тема прошлая для него была. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 11:36 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39593493&tid=2122308]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 367ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...