@jvmchat

Страница 569 из 2890
Митко Соловец?
15.09.2016
20:17:40
и что-то появится только при вызове геттера

можно попробовать @Valid повесить на геттер

если позволяет

Ivan
15.09.2016
20:17:52
разве @Valid не вызывает Getter для проверки?

Google
Митко Соловец?
15.09.2016
20:18:09
и для связи 1 к 1 можно юзать жадную стратегию

она по дефолту такая

Ivan
15.09.2016
20:19:53
по идее он должен геттер юзать для своих целей но в принципе совет ясен попробую может пойдет, а то EAGER совсем плохо

попробую на геттер повесить

Митко Соловец?
15.09.2016
20:21:00
http://stackoverflow.com/questions/7774413/bean-validation-through-jpa-relationships

немного проливает свет

http://forum.spring.io/forum/spring-projects/web/82890-cascade-validation-using-valid-annotation

человек вроде подсказал тоже, что и я

отпишись потом, что с геттером

Ivan
15.09.2016
20:35:39
я не уточнил, Hibernate валидация проходит нормально, не проходит Spring валидация(которую я юзаю в методе в контроллере) т.е. по сути валидация у меня проходит два раза, первый раз на этапе биндинга данных с клиента и второй раз сам HIbernate валидируется данные при обновлении в БД Spring валидация запускается public void edit(@Valid @ModelAttribute Project project, BindingResult bindingResult) {...}

Andrey ?
15.09.2016
20:35:39
Есть смысл хешировать хеш от пароля пользователя, чтобы хранить его БД. Или от количества хеширований безопасность не улучшится?

Ivan
15.09.2016
20:36:51
на геттер не помог вариант

Google
Ivan
15.09.2016
20:37:02
только смена на EAGER помогает

хотя понятное дело плохая идея биндить данные с клиента сразу на JPA Entity

но вначале казалось хорошей :D

Митко Соловец?
15.09.2016
20:37:46
вариант какой друг

юзать жадную стратегию, тогда будет не прокси грузится, а реальный объект

и посмотри паттерн DTO - транспортные объекты

делай валидацию на них в контроллере

не управляй напрямую доменными сущностями

Pavel
15.09.2016
20:38:42
ох уж этот data transfer object

Митко Соловец?
15.09.2016
20:38:50
ну тут без него плоховато

Ivan
15.09.2016
20:39:05
я понял сейчас мы переходим на DTO а эта проблема осталась я запомнил так сказать, сейчас мы юзаем DTO + MapStruct

Митко Соловец?
15.09.2016
20:39:07
а в самой энтити оставь констрэйнт проверки, хотя по идее база должна сама проверять

Ivan
15.09.2016
20:44:52
по первому вопросу вот примерный код: @Transactional public Project save(Project project) { project.setDate(new Date()); Project previous = repository.findOne(project.getId()); ... return repository.save(project); } объект previous нужен для бизнесовой логики, сейчас мы делаем entityManager.detach(project) в первой строке кода

иначе на repository.findOne(project.getId()) Hibernate делает UPDATE

Митко Соловец?
15.09.2016
20:46:18
а почему бы repository.findOne не вынести вперед?

Ivan
15.09.2016
20:47:06
предполагается что объект может быть уже изменен за пределами вызова этого метода, я сделал project.setDate(new Date()); что бы показать что он отличается от того что в БД

Митко Соловец?
15.09.2016
20:48:53
ну странно как-то

типичный метод апдейта

обычно сначала сущность достают по айди

я так понимаю, там где у тебя точечки - переливашка свойства через сеттеры, да?)

Google
Ivan
15.09.2016
20:51:37
там логика: project это "типо" новый объект а previous старый(тот что в БД) на project данные забиндены с клиента(т.е. они отличаются от previous) возможны проверки например у проекта изменился статус(был "в работе" стал "завершено") в таком случае нужно другие свойства проекта изменить, короче логика

Митко Соловец?
15.09.2016
20:52:10
а флуш где происходит?

в этих проверках?

Gleb
15.09.2016
20:53:37
эээ, ребят, как вы обзываете association tables для many-to-many, когда названия таблиц у нас что-то типа POINT и POINT_TYPE ?

Митко Соловец?
15.09.2016
20:53:59
типо того, хибер так же генерит

Ivan
15.09.2016
20:55:08
нет, как раз в этом и заключается вопрос, сейчас у нас стоит FlushType AUTOFLUSH, т.е. хибернейте сам может сделать flush когда хочет во время транзакции и 100% делает на commit(я так понимаю) фактически метод repository.save делает entityManager.merge или entityManager.persist

Митко Соловец?
15.09.2016
20:58:14
сделайте FlushModeType.COMMIT

и все разрешится

"org.hibernate.flushMode" - вроде такая пропертя у хибера

Pavel ?
15.09.2016
21:03:16
я нихрена не понял))

Ivan
15.09.2016
21:03:17
ну мы так и думаем либо передавать на сохранение DTO объект который по сути вне контекста либо перейти на FlushModeType.COMMIT

Митко Соловец?
15.09.2016
21:03:35
переходите

Ivan
15.09.2016
21:03:50
а вы юзаете какой тип?

Митко Соловец?
15.09.2016
21:03:57
это же логично, что коммит и флаш будет по окончанию работы @Transactional

Ivan
15.09.2016
21:04:04
просто разрабы хибернейт не советуют менять FlushModeType

типо персистентность все дела

Митко Соловец?
15.09.2016
21:04:17
не видел такого

Ivan
15.09.2016
21:04:30
я где то читал в доках у них

Митко Соловец?
15.09.2016
21:04:40
у нас коммит по выходу из метода

Ivan
15.09.2016
21:04:47
понял

Google
Pavel ?
15.09.2016
21:11:56
флеш мод то можно менять) только в данном контексте я не понял нафига)

а вот уровень изоляции, да, не советуют)

Ivan
15.09.2016
21:13:23
от флеш мода зависит когда данные попадают в БД(внутри транзакции), например ALWAYS сливает данные при ЛЮБОМ селекте в той же транзакции, AUTOFLUSH сливает данные когда хибернейт сам захочет, COMMIT по коммиту

Pavel ?
15.09.2016
21:14:24
вообще-то флеш меняет стейт обьекта внутри хибера) причем тут коммит)

Ivan
15.09.2016
21:14:39
.flush?

Pavel ?
15.09.2016
21:14:42
да)

Ivan
15.09.2016
21:15:10
Synchronize the persistence context to the underlying database.

в доках

.flush сливает данные как раз

а вот persist и merge в контекст заливают данные

Admin
ERROR: S client not available

Ivan
15.09.2016
21:15:47
.flush сливает в БД

Pavel ?
15.09.2016
21:16:08
ща)))

я таки открою апи))

а ну да...внутри транзакции сливает)

правда данные будут не видны)

Митко Соловец?
15.09.2016
21:20:22
поэтому стратегию надо поменять

Ivan
15.09.2016
21:24:12
данные будут видны

в этой транзакции

а если READ_UNCOMMITED то не только

Google
Pavel ?
15.09.2016
21:25:05
ну так ты изоляцию меняешь) ессесно)

но тут может быть беда)

Митко Соловец?
15.09.2016
21:26:58
Паш, в общем коммит мод норм решение?

Pavel ?
15.09.2016
21:26:58
начнешь инкрементить ченить и привет)

Митко Соловец?
15.09.2016
21:27:07
оцени, пожалуйста

Pavel ?
15.09.2016
21:27:22
норм решение для чего?)

Митко Соловец?
15.09.2016
21:27:32
чтобы не сливалось все сразу

а только после коммита - выхода из метода

Pavel ?
15.09.2016
21:37:29
да вполне себе норм))

ThisIs
16.09.2016
01:47:09
Заменить OneToOne на Manytoone не получиться?

Igor
16.09.2016
08:52:22
а кто-нибудь lwjgl 3 на маке пробовал юзать?

я месяца 2 назад запускал их пример, думал, что придётся ноут под кондиционер ставить

Flamie
16.09.2016
08:56:48
и писала из под мака

Igor
16.09.2016
08:57:11
и как, не греется что дурной?

Flamie
16.09.2016
08:57:17
нет

Igor
16.09.2016
08:57:48
хочу просто попробовать еще раз запустить, так думаю, стоит ли :) тогда они 3й вроде только-только зарелизили, когда пробовал запустить

Flamie
16.09.2016
08:58:22
ограничивай фпс

он там когда просто окно пустое запускаешь 4.5к может быть

Igor
16.09.2016
08:58:58
о, попробую

спасибо :)

Flamie
16.09.2016
08:59:52
да пока не за что

там еще есть проблемы при использовании awt

Страница 569 из 2890