|
|
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
Условие: Имеются 3 сущности: Документ, Задача, Файл. Связи в ER-нотации: Код: plaintext Новый документ Если новый документ создается вне связи с задачей, то сущности Документ и Файл "отсылаются" в БД внутри одной транзакции. Все работает корректно. Если существующий документ приаттачивается к задаче - обновление ассоциации берет на себя Задача. Отрабатывает корректно. А вот если пытаться приаттачить к задаче вновь созданный документ с вновь созданным файлом - вылетает исключение: object references an unsaved transient instance - save the transient instance before flushing. Type: Document, Entity: Document Трассировка запросов: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 10:57 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
А код напиши? Там может файлу что-нить типа Session.Save(file) сделать, перед его связью с документом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 11:34 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 11:50 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
barserА код напиши? DocumentRepository: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 11:51 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
Курдль, Код: plaintext 1. 2. 3. 4. 5. 6. 7. Возможно, я и не прав, но после GenericDAOImpl.Save он targetFile еще не комитит , а просто помечает как persistent (ну и id из сиквенса берет, например)... А на момент, когда у тебя транзакция комитится, targetFile уже не существует... Если попробовать в AddFile после Save(...) вызвать _session.Flush() что-нибудь изменится? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 12:04 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
barserЕсли попробовать в AddFile после Save(...) вызвать _session.Flush() что-нибудь изменится? ) Не-а! Попозже попробую переписать все без DAO и в одной последовательности, чтобы не метаться из метода в метод и четче понимать, что за чем выполняется. Подвох в том, что этот код корректно выполняется, если не создавать ассоциацию Задача - Документ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 12:15 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
Курдль, за архитектуру репозитория двойка. С какого понталыку в дале курятся вебовские грабли, типа HttpPostedFileBase? А если этот дал будет раскуривать вин приложение, CLR проца, SSIS пакет и иже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 13:48 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
Давненько Чирфунька не было на сайте. Раньше он заведовал отделом "Исследований инновационных технологий и алгоритмов", причём, даже в разрезе веба. Щас его должность подхватил Курдлёк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 14:14 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
МСУКурдль, за архитектуру репозитория двойка. С какого понталыку в дале курятся вебовские грабли, типа HttpPostedFileBase? А если этот дал будет раскуривать вин приложение, CLR проца, SSIS пакет и иже? Ничто ничему не противоречит! Никто не запрещает в репозитории работать с какими угодно классами (а HttpPostedFileBase - такой же класс, как остальные). К тому же вин приложение к этой АС давно раскурено на борланде и никаким идеальным ДАЛом его не улучшишь (мир его живому праху!). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 15:19 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
МСУ, И вообще, хватит ржать! Лучше помоги материально (советом). Напр. какого ... имя файла не передается с сервера на клиент, если оно в кириллице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 15:26 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
КурдльНичто ничему не противоречит! Противоречит. Вы жестко прибиваете дал вебовскими костылями. Сигнатура метода AddDocumentWithFile должна быть двух вариантов: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. или Код: plaintext КурдльНикто не запрещает в репозитории работать с какими угодно классами (а HttpPostedFileBase - такой же класс, как остальные). Вы - уволенынах, коллега :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 15:33 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
КурдльМСУ, И вообще, хватит ржать! Ну так я ж, это самое, советую как бы, ёпт. КурдльЛучше помоги материально (советом). Напр. какого ... имя файла не передается с сервера на клиент, если оно в кириллице? Код: plaintext 1. 2. 3. 4. 5. 6. 7. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 15:37 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
МСУ, Вот это я называю: "рука мастера"! Спасибо! До чего ж странные эти вэб-приложения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 16:21 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
ы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 16:25 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
Курдль, еще замечание, аж глаз режет. Ну называйте атрибуты сущностей нормальными именами! Код: plaintext 1. 2. 3. 4. 5. 6. ... поубивал бы :( Код: plaintext P.S. Отдаёт дельфятинно-сиквельным/оракульным ламеризмом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 16:35 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
МСУКурдль, еще замечание, аж глаз режет. Ну называйте атрибуты сущностей нормальными именами! Код: plaintext 1. 2. 3. 4. 5. 6. ... поубивал бы :( Код: plaintext P.S. Отдаёт дельфятинно-сиквельным/оракульным ламеризмом. Вот уж фигушки!!! Я нашел такую удобную для себя рекомендацию и не откажусь от нее! И еще заставлю применять ее всех, кто от меня зависит! А вот ноги поотрывать надо тем, кто идентификаторы всех сущностей БД называет ID, а наименования - NAME!!! MS Oracle SQL Server FOREVER!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 17:11 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
КурдльА вот ноги поотрывать надо тем, кто идентификаторы всех сущностей БД называет ID, а наименования - NAME!!! MS Oracle SQL Server FOREVER!!! Когда под руководством Муси подрастешь и будешь мучиться где прогерскаое, где БДшное, где интерфейсное, где пользовательское имя долбаное, поймешь, что свойства тоже надо типизировать и самое просто nameи id :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 17:30 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 17:33 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
ViPRosпоймешь, что свойства тоже надо типизировать и самое просто nameи id :) Для тех, кто создает БД на коленке или при помощи "искусственного интеллекта" типа NH - может и проканает. МСУP.S. Курдль, C#/VB .NET Coding Guidelines Имена свойств персистентных классов должны отличаться от свойств обычных классов! ТОЧКА! ОБСУЖДЕНИЮ НЕ ПОДЛЕЖИТ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 17:56 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
КурдльТОЧКА! ОБСУЖДЕНИЮ НЕ ПОДЛЕЖИТ! Имею мнение, хрен оспоришь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 20:12 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
Курдль Имена свойств персистентных классов должны отличаться от свойств обычных классов! ТОЧКА! ОБСУЖДЕНИЮ НЕ ПОДЛЕЖИТ! а обоснование можно, хотя бы вкратце? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2010, 09:53 |
|
||
|
Вопрос для профессионалов: каскадное + последовательное сохранение сущностей
|
|||
|---|---|---|---|
|
#18+
Кстати, а для чего Вы бросаете исколючения вот таким странным образом Код: plaintext 1. 2. 3. 4. 5. Неужели при отладке, или при записи в лог вы не хотите видеть StackTrace и InnerException? Не лучше ли было был сделать вот так: Код: plaintext 1. 2. 3. 4. 5. Или еще проще: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2010, 12:26 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36833934&tid=1351093]: |
0ms |
get settings: |
13ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
81ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 468ms |

| 0 / 0 |
