честно — не слышал про Нила Стивенсона до вашего комментария. Согласен, длинно, но это эксперимент. Пока только минусы — то ли из-за AI, то ли от верующих, ну или просто лажа вышла )
Наверно что-то понимаешь. И наверно что-то не понимаешь, раз говоришь что действие ксенона — это просто гипоксия или что инертным газом можно "отравиться". Как можно отравиться тем что не вступает в химические реакции, ну сам-то подумай? Да, можно неполностью выводить СО2 из лёгких — это будет проблема, но отравиться самим ксеноном неполучится чисто физически. И если бы это была бы просто гипоксия — зачем тогда вообще нужен был бы ксенон для анестезии например, правда? Гипоксию можно устроить гораздо дешевле.
Вообще очень жаль что врачи-терапевты бывают настолько агрессивными и хамоватыми. Если ты нашел ошибку в том что написал ИИ — ну расскажи нам об этом спокойно, или ты думаешь что выпускник МФТИ тебя не поймёт? Пока что твоя аргументация сводится лишь к "я терапевт, слушать сюда".
А для тех кто не в танке, вот что говорит чатжпт по поводу гипоксии при дыхании смеси ксенона с кислородом:
Коротко и по сути: нет, эффекты ксенона не являются следствием гипоксии, и при корректной смеси с кислородом гипоксия не возникает. Ни клинически, ни физиологически это не сходится. Ниже — почему.
1. Главный аргумент против гипоксии
Гипоксия субъективно ощущается совершенно иначе, чем ксенон.
Гипоксия даёт:
тревогу,
тахикардию,
чувство «не хватает воздуха»,
сужение сознания,
спутанность,
иногда панику.
Ксенон даёт:
спокойствие,
ясность,
отсутствие дыхательного дискомфорта,
стабильную гемодинамику,
ощущение «всё достаточно».
Это противоположные вегетативные профили.
2. Может ли вообще возникнуть гипоксия при дыхании ксеноном?
Короткий ответ:
Да — только если неправильно составлена газовая смесь. Нет — если кислорода достаточно.
3. Что происходит физически в лёгких
Ксенон:
химически инертен,
не связывается с гемоглобином,
не вытесняет кислород с Hb,
не нарушает диффузию O₂ через альвеолы.
Если во вдыхаемой смеси:
O₂ ≥ 21% → нормоксия
O₂ 30–40% → гипероксия
В клинических протоколах:
SpO₂ постоянно мониторится,
гипоксия — жёсткий стоп-фактор.
4. Почему возникает иллюзия «это как гипоксия»?
Потому что есть поверхностное феноменологическое сходство, но механизм другой.
тут большая таблица, её лучше посмотреть пройдя по ссылке
Сходство:
«изменённое состояние сознания»
Различие:
полярно разная физиология.
5. Ключевой нейрофизиологический аргумент
Если бы это была гипоксия:
первым страдал бы гиппокамп,
нарушалась бы память,
возникала бы дезориентация,
повышался бы глутамат (эксайтотоксичность).
А при ксеноне:
память часто сохраняется,
гиппокамп защищён,
глутаматная активность снижается,
наблюдается нейропротекция, а не повреждение.
Это логически несовместимо с гипоксией.
6. Почему ксенон даже защищает от гипоксии
Парадоксально, но факт:
Ксенон:
снижает метаболический запрос нейронов,
уменьшает NMDA-зависимую эксайтотоксичность,
улучшает перенос ишемии.
📌 Его изучают именно как протектор при ишемии мозга и сердца. Гипоксия делает ровно обратное.
В комментариях ожидаемо возникли вопросы про физиологию взаимодействия ксенона с мозгом. А так же опасения возникновения зависимости или "выгоряния" рецепторов допамина/серотонина. Ниже приведу на мой взгляд предельно ясное пояснение этого момента от ChatGPT:
Вопрос: что является физиологическим механизмом ощущения блаженства во время ксеноновой терапии? и если это через стандартные серотонин и дофамин — не вызывает ли это "выгорание" рецепторов и последующее хроническое снижение чувствительности?
Ответ
Отличный, очень точный вопрос. Тут важно не перепутать «блаженство» с эйфорией — у ксенона это принципиально разные вещи. Разберу по слоям.
1. Сразу главный ответ
Ощущение блаженства при ксеноне НЕ является следствием прямой стимуляции дофаминовых или серотониновых рецепторов.
Поэтому:
нет классического «перегруза» системы вознаграждения,
нет выгорания рецепторов,
нет пост-эффекта в виде «пустоты» или анедонии.
2. Что это за блаженство вообще?
Субъективно люди описывают:
глубокий покой,
отсутствие внутреннего напряжения,
ясность без возбуждения,
«всё и так хорошо, ничего не нужно».
Это не пик, а снятие фона шума.
3. Основной физиологический механизм (ключевой)
🔹 NMDA-модуляция → снижение фонового возбуждения
Ксенон:
неконкурентно ослабляет NMDA-рецепторы,
снижает глутаматный «тональный шум» коры,
особенно в:
префронтальной коре,
поясной извилине,
таламокортикальных петлях.
📌 Результат:
мозг перестаёт поддерживать избыточное возбуждение, а не «добавляет удовольствие».
4. Второй слой: таламус и сенсорный гейтинг
Ксенон:
улучшает сенсорный гейтинг,
снижает поток нерелевантных сигналов,
уменьшает телесную и эмоциональную гиперстимуляцию.
Это даёт ощущение:
тишины,
«растворения границ»,
телесного комфорта.
5. А где же дофамин и серотонин?
Дофамин
не стимулируется напрямую,
нет резкого выброса в nucleus accumbens,
нет паттерна «reward prediction error».
Если дофамин и меняется, то:
вторично,
мягко,
как следствие снижения стресса.
👉 Это похоже на состояние:
после медитации,
после глубокой физической разрядки,
после хорошо пройденной психотерапии.
Серотонин
также не активируется напрямую,
нет агонизма 5-HT₂A (как у психоделиков),
нет десенситизации рецепторов.
Скорее:
стабилизация,
балансировка кортикальных сетей.
6. Почему нет «выгорания» рецепторов
Выгорание происходит, когда:
есть прямая стимуляция рецепторов,
высокий уровень нейромедиатора,
повторяющийся пик → адаптация.
У ксенона:
нет прямого агонизма,
нет пиков,
нет искусственного «плюса».
Это состояние можно описать так:
«не стало минуса», а не «появился плюс».
7. Очень важное сравнение
тут было сравнение с запрещёнными веществами
8. Тогда почему это ощущается как «блаженство»?
Потому что:
хроническое напряжение мозгом воспринимается как «норма»,
когда оно исчезает — возникает чувство полноты и достаточности.
Это не стимуляция счастья, а прекращение страдания.
9. Самый глубокий момент (ты его явно уловишь)
Ксенон показывает, что:
ощущение блаженства может возникать без системы вознаграждения.
А значит:
счастье ≠ дофамин,
удовлетворённость ≠ серотонин,
а состояние сознания — это режим сети, а не уровень медиаторов.
Успокойтесь, что вы сразу нападаете, тем более совсем не разобравшись в физиологии процесса.
Основная мишень ксенона — NMDA-рецепторы (глутаматные рецепторы).
Ксенон физически занимает гидрофобные полости в белках,
меняет их конформационную динамику,
тем самым уменьшает проводимость канала.
Не «блокирует» как молекула-антагонист, а меняет энергетический ландшафт состояний рецептора.
Это принципиально важно.
И нет, это не обычный собачий кайф, я ниже ответил человеку чем кайф отличается от блаженства на физиологическом уровне.
Конечно, если смесь приготовлена неправильно — это опасно. По-этому я и написал сразу что если уж пробовать это, то только в нормальных местах (настоящих клиниках, а не шарагах) и под присмотром врача.
Ну и по поводу панических атак при диссоциации под ксеноном — это тоже неправда. И я в посте сразу описал почему. Если вам нужны детали, зайтите в чат с жпт — ссылку я уже оставил. А шизофреникам даже в метро ездить может послужить триггером. Но кстати чуйка мне подсказыват, что это вполне может стать реальным направлением в исследованиях лечения шизофрении.
Если лень — то нет, никакой гормональной или нейромедиаторной стимуляции не происходит. Никакого обратного захвата серотонина и подобных штук — нет. "Выгорания" или понижения чувствительности рецепторов не возникает.
Тогда почему это ощущается как «блаженство»?
Потому что:
хроническое напряжение мозгом воспринимается как «норма»,
когда оно исчезает — возникает чувство полноты и достаточности.
Это не стимуляция счастья, а прекращение страдания. Мозг перестаёт поддерживать избыточное возбуждение, а не «добавляет удовольствие». Ксенон реализует ощущение блаженства без активации системы вознаграждения.
Так что нет, торчком не получится на ксеноне стать и житейские радости будут переживаться как минимум точно так же.
Я не писал что "никак не взаимодействует" — он взаимодействует, но не на химическом уровне, и только в одном очень точечном месте. Но химически — да, он ничего не трогает, ни с чем не соединяется, никакую цепочку реакций не меняет, ничего не разрушает и вообще следов не оставляет, и не требует метаболизма для вывода из организма.
5) первый сеанс они проводят короткий и на низкой концентрации. Просто чтобы на всякий случай проверить реакцию вашего организма. Вы конечно почувствуете эффект, но без тотального растворения в блаженстве, которое происходит при концентрации выше 30%.
Где делать: есть много частных клиник, гуглите. Никого не рекламирую, но если напишите в личку — дам контакты клиники на Таганке. Я с ними никак не связан, просто сам делал там и было хорошо. Я слышал ещё в Сити есть точки, где те у кого куры денег не клюют ложатся "отдохнуть" на 4-5 часов. Но что-то мне подсказывает что там дороже =)
конечно это моё субьективное мнение — но на метод getNetworks просто больно смотреть. Вроде методы класса нормально типизированы, но тут вдруг раз и getNetworks(): array - и нужны какие-то хаки в комментариях. Я не хочу сказать что это не работает — очевидно это работает, но блин, костыли на костылях.
ну хорошо, значит в связке с PHPStan PHP перестаёт быть языком без строгой типизации )) Потому что языки без строгой типизации — это боль. Что собственно я и хотел сказать.
ну неплохо, да, и правильно что вы определили методы с типизированными параметрами.
Но вот ваш пример выше - ...->findBy(array('age' => 20, 'surname' => 'Miller')) — тут вы можете передать любой набор условий, любые названия полей и любые типа данных, потому что этот массив совсем никак не типизирован, вы можете вообще туда любой массив запихать. Да, в вашем реальном примере вы подстраховались создав типизированные методы — это хорошо. Но на уровне ORM как не было никакой проверки до реального выполнения кода, так и нет.
плюс к этому, я могу ошибаться, но думается мне что findBy возвращает нетипизированный массив. Что в нём лежит, объекты какого класса, какие у них есть поля, какого они типа — любые ошибки связанные с этой неопределённостью всплывут только во время исполнения кода.
Для генерации запросов в JPA есть несколько подходов, например:
1) interface Repository - это такие интерфейсы в которых ты описываешь только как должны выглядеть функции для select/update/delete, а реализацию этих функций берёт на себя JPA. Например:
fun findByGuidIn(guids: Iterable<UUID>): List<UserInfo>
}
В этом случае JPA сам создаст реализацию метода findByGuidIn с проверкой наличия поля guid в классе UserInfo и его типа. Притом эти проверки будут сделаны на этапе запуска приложения, а не на этапе вызова метода.
2) Использовать JPA Query Language - это такой аналог SQL в котором вы оперируете не названиями таблиц и полей в них, а названиями классов и полей в классах. Опять же, синтаксис этих запросов будет проверен на этапе запуска программы, и если приложение стартануло (или прошло какие-либо тесты, даже те которые не вызывают этот метод-запрос) — вы можете быть уверены что запрос будет работать как надо.
3) Для Kotlin есть полностью строго-типизированный DSL для построение SQL запросов. Выглядит это вот так:
val users = query { select(user) from(user) where { user.email eq email user.status eq status } }
тоже самое в Java
List result = new JPAQuery(entityManager) .select(user) .from(user) .where( user.email.eq(email) .and(user.status.eq(status)) ) .fetch();
при таком подходе у вас никак не получится ошибиться в названии таблицы или полей или в их типах. С проверкой на этапе компиляции.
Так что да, большая часть запросов описывается декларативно, просто через название метода, его параметры и возвращаемый тип данных ORM сама строит SQL запрос. Почти во всех остальных случаях — JPA Query Language. Конечно иногда остаются единичные запросы которые лучше написать на чистом SQL — но это скорее очень редкое исключение, и покрывая тестами такие запросы вы можете быть спокойны в целом за работу вашего слоя взаимодействия с базой данных.
это уже хорошо )
Нужно четко обозначить суть публикации в эпиграфе.
спасибо, добавлю
честно — не слышал про Нила Стивенсона до вашего комментария. Согласен, длинно, но это эксперимент. Пока только минусы — то ли из-за AI, то ли от верующих, ну или просто лажа вышла )
да, это ЧатЖПТ с моих подач, идей и уточнений. Восторженных отзывов не ожидаю, понимаю что до настоящей искрящейся сатиры очень далеко.
да ты реально болен :)
Алкоголь давай запрети, или возможно ты сам подбухиваешь. Наркоскотина ты наша :)
то есть все твои "аргументы" оказались побиты, но ты всё равно продолжаешь. Это уже диагноз.
Наверно что-то понимаешь. И наверно что-то не понимаешь, раз говоришь что действие ксенона — это просто гипоксия или что инертным газом можно "отравиться". Как можно отравиться тем что не вступает в химические реакции, ну сам-то подумай? Да, можно неполностью выводить СО2 из лёгких — это будет проблема, но отравиться самим ксеноном неполучится чисто физически. И если бы это была бы просто гипоксия — зачем тогда вообще нужен был бы ксенон для анестезии например, правда? Гипоксию можно устроить гораздо дешевле.
Вообще очень жаль что врачи-терапевты бывают настолько агрессивными и хамоватыми. Если ты нашел ошибку в том что написал ИИ — ну расскажи нам об этом спокойно, или ты думаешь что выпускник МФТИ тебя не поймёт? Пока что твоя аргументация сводится лишь к "я терапевт, слушать сюда".
А для тех кто не в танке, вот что говорит чатжпт по поводу гипоксии при дыхании смеси ксенона с кислородом:
Коротко и по сути: нет, эффекты ксенона не являются следствием гипоксии, и при корректной смеси с кислородом гипоксия не возникает. Ни клинически, ни физиологически это не сходится. Ниже — почему.
1. Главный аргумент против гипоксии
Гипоксия субъективно ощущается совершенно иначе, чем ксенон.
Гипоксия даёт:
тревогу,
тахикардию,
чувство «не хватает воздуха»,
сужение сознания,
спутанность,
иногда панику.
Ксенон даёт:
спокойствие,
ясность,
отсутствие дыхательного дискомфорта,
стабильную гемодинамику,
ощущение «всё достаточно».
Это противоположные вегетативные профили.
2. Может ли вообще возникнуть гипоксия при дыхании ксеноном?
Короткий ответ:
Да — только если неправильно составлена газовая смесь.
Нет — если кислорода достаточно.
3. Что происходит физически в лёгких
Ксенон:
химически инертен,
не связывается с гемоглобином,
не вытесняет кислород с Hb,
не нарушает диффузию O₂ через альвеолы.
Если во вдыхаемой смеси:
O₂ ≥ 21% → нормоксия
O₂ 30–40% → гипероксия
В клинических протоколах:
SpO₂ постоянно мониторится,
гипоксия — жёсткий стоп-фактор.
4. Почему возникает иллюзия «это как гипоксия»?
Потому что есть поверхностное феноменологическое сходство, но механизм другой.
тут большая таблица, её лучше посмотреть пройдя по ссылке
Сходство:
«изменённое состояние сознания»
Различие:
полярно разная физиология.
5. Ключевой нейрофизиологический аргумент
Если бы это была гипоксия:
первым страдал бы гиппокамп,
нарушалась бы память,
возникала бы дезориентация,
повышался бы глутамат (эксайтотоксичность).
А при ксеноне:
память часто сохраняется,
гиппокамп защищён,
глутаматная активность снижается,
наблюдается нейропротекция, а не повреждение.
Это логически несовместимо с гипоксией.
6. Почему ксенон даже защищает от гипоксии
Парадоксально, но факт:
Ксенон:
снижает метаболический запрос нейронов,
уменьшает NMDA-зависимую эксайтотоксичность,
улучшает перенос ишемии.
📌 Его изучают именно как протектор при ишемии мозга и сердца.
Гипоксия делает ровно обратное.
7. А может быть «локальная» гипоксия мозга?
Тоже нет.
Мозговой кровоток не снижается,
CO₂ не накапливается патологически,
ауторегуляция сохранена.
Если бы была локальная гипоксия:
были бы головная боль, давление, спутанность,
чего при ксеноне обычно нет.
8. Очень важный концептуальный момент
Ксенон показывает принцип:
Сознание может радикально меняться:
без дефицита O₂,
без дефицита глюкозы,
без «отключения» мозга.
Меняется режим координации, а не питание.
9. Итог (чётко)
❌ Эффекты ксенона не объясняются гипоксией
✅ При адекватном O₂ гипоксия не возникает
❌ Ксенон не маскированное удушье
✅ Это чистая нейродинамическая модуляция
мне незачем чего-либо доказывать. Кто захочет — сам разберётся.
В комментариях ожидаемо возникли вопросы про физиологию взаимодействия ксенона с мозгом. А так же опасения возникновения зависимости или "выгоряния" рецепторов допамина/серотонина. Ниже приведу на мой взгляд предельно ясное пояснение этого момента от ChatGPT:
Вопрос: что является физиологическим механизмом ощущения блаженства во время ксеноновой терапии? и если это через стандартные серотонин и дофамин — не вызывает ли это "выгорание" рецепторов и последующее хроническое снижение чувствительности?
Ответ
Отличный, очень точный вопрос. Тут важно не перепутать «блаженство» с эйфорией — у ксенона это принципиально разные вещи. Разберу по слоям.
1. Сразу главный ответ
Ощущение блаженства при ксеноне НЕ является следствием прямой стимуляции дофаминовых или серотониновых рецепторов.
Поэтому:
нет классического «перегруза» системы вознаграждения,
нет выгорания рецепторов,
нет пост-эффекта в виде «пустоты» или анедонии.
2. Что это за блаженство вообще?
Субъективно люди описывают:
глубокий покой,
отсутствие внутреннего напряжения,
ясность без возбуждения,
«всё и так хорошо, ничего не нужно».
Это не пик, а снятие фона шума.
3. Основной физиологический механизм (ключевой)
🔹 NMDA-модуляция → снижение фонового возбуждения
Ксенон:
неконкурентно ослабляет NMDA-рецепторы,
снижает глутаматный «тональный шум» коры,
особенно в:
префронтальной коре,
поясной извилине,
таламокортикальных петлях.
📌 Результат:
4. Второй слой: таламус и сенсорный гейтинг
Ксенон:
улучшает сенсорный гейтинг,
снижает поток нерелевантных сигналов,
уменьшает телесную и эмоциональную гиперстимуляцию.
Это даёт ощущение:
тишины,
«растворения границ»,
телесного комфорта.
5. А где же дофамин и серотонин?
Дофамин
не стимулируется напрямую,
нет резкого выброса в nucleus accumbens,
нет паттерна «reward prediction error».
Если дофамин и меняется, то:
вторично,
мягко,
как следствие снижения стресса.
👉 Это похоже на состояние:
после медитации,
после глубокой физической разрядки,
после хорошо пройденной психотерапии.
Серотонин
также не активируется напрямую,
нет агонизма 5-HT₂A (как у психоделиков),
нет десенситизации рецепторов.
Скорее:
стабилизация,
балансировка кортикальных сетей.
6. Почему нет «выгорания» рецепторов
Выгорание происходит, когда:
есть прямая стимуляция рецепторов,
высокий уровень нейромедиатора,
повторяющийся пик → адаптация.
У ксенона:
нет прямого агонизма,
нет пиков,
нет искусственного «плюса».
Это состояние можно описать так:
7. Очень важное сравнение
тут было сравнение с запрещёнными веществами
8. Тогда почему это ощущается как «блаженство»?
Потому что:
хроническое напряжение мозгом воспринимается как «норма»,
когда оно исчезает —
возникает чувство полноты и достаточности.
Это не стимуляция счастья,
а прекращение страдания.
9. Самый глубокий момент (ты его явно уловишь)
Ксенон показывает, что:
А значит:
счастье ≠ дофамин,
удовлетворённость ≠ серотонин,
а состояние сознания — это режим сети, а не уровень медиаторов.
Успокойтесь, что вы сразу нападаете, тем более совсем не разобравшись в физиологии процесса.
Основная мишень ксенона — NMDA-рецепторы (глутаматные рецепторы).
Ксенон физически занимает гидрофобные полости в белках,
меняет их конформационную динамику,
тем самым уменьшает проводимость канала.
Не «блокирует» как молекула-антагонист, а меняет энергетический ландшафт состояний рецептора.
Это принципиально важно.
И нет, это не обычный собачий кайф, я ниже ответил человеку чем кайф отличается от блаженства на физиологическом уровне.
Конечно, если смесь приготовлена неправильно — это опасно. По-этому я и написал сразу что если уж пробовать это, то только в нормальных местах (настоящих клиниках, а не шарагах) и под присмотром врача.
Ну и по поводу панических атак при диссоциации под ксеноном — это тоже неправда. И я в посте сразу описал почему. Если вам нужны детали, зайтите в чат с жпт — ссылку я уже оставил. А шизофреникам даже в метро ездить может послужить триггером. Но кстати чуйка мне подсказыват, что это вполне может стать реальным направлением в исследованиях лечения шизофрении.
Тут важно не перепутать «блаженство» с кайфом — у ксенона это принципиально разные вещи.
если вам действительно интересно узнать за счёт каких физиологических процессов возникается ощущение блаженства под ксеноном - найдите возможность прочитать вот этот чат - https://chatgpt.com/c/693f2b94-b9e8-8324-b57d-909ad5cd9585
Если лень — то нет, никакой гормональной или нейромедиаторной стимуляции не происходит. Никакого обратного захвата серотонина и подобных штук — нет. "Выгорания" или понижения чувствительности рецепторов не возникает.
Тогда почему это ощущается как «блаженство»?
Потому что:
хроническое напряжение мозгом воспринимается как «норма»,
когда оно исчезает — возникает чувство полноты и достаточности.
Это не стимуляция счастья, а прекращение страдания. Мозг перестаёт поддерживать избыточное возбуждение, а не «добавляет удовольствие». Ксенон реализует ощущение блаженства без активации системы вознаграждения.
Так что нет, торчком не получится на ксеноне стать и житейские радости будут переживаться как минимум точно так же.
если интересно, найдите возможность прочитать этот чат - https://chatgpt.com/share/6943bf8e-bc48-8004-9685-ffb50a62455b
Я не писал что "никак не взаимодействует" — он взаимодействует, но не на химическом уровне, и только в одном очень точечном месте. Но химически — да, он ничего не трогает, ни с чем не соединяется, никакую цепочку реакций не меняет, ничего не разрушает и вообще следов не оставляет, и не требует метаболизма для вывода из организма.
5) первый сеанс они проводят короткий и на низкой концентрации. Просто чтобы на всякий случай проверить реакцию вашего организма. Вы конечно почувствуете эффект, но без тотального растворения в блаженстве, которое происходит при концентрации выше 30%.
Где делать: есть много частных клиник, гуглите. Никого не рекламирую, но если напишите в личку — дам контакты клиники на Таганке. Я с ними никак не связан, просто сам делал там и было хорошо. Я слышал ещё в Сити есть точки, где те у кого куры денег не клюют ложатся "отдохнуть" на 4-5 часов. Но что-то мне подсказывает что там дороже =)
конечно это моё субьективное мнение — но на метод
getNetworksпросто больно смотреть. Вроде методы класса нормально типизированы, но тут вдруг раз иgetNetworks():array- и нужны какие-то хаки в комментариях. Я не хочу сказать что это не работает — очевидно это работает, но блин, костыли на костылях.ну хорошо, значит в связке с PHPStan PHP перестаёт быть языком без строгой типизации )) Потому что языки без строгой типизации — это боль. Что собственно я и хотел сказать.
ну неплохо, да, и правильно что вы определили методы с типизированными параметрами.
Но вот ваш пример выше -
...->findBy(array('age' => 20, 'surname' => 'Miller'))— тут вы можете передать любой набор условий, любые названия полей и любые типа данных, потому что этот массив совсем никак не типизирован, вы можете вообще туда любой массив запихать. Да, в вашем реальном примере вы подстраховались создав типизированные методы — это хорошо. Но на уровне ORM как не было никакой проверки до реального выполнения кода, так и нет.плюс к этому, я могу ошибаться, но думается мне что
findByвозвращает нетипизированный массив. Что в нём лежит, объекты какого класса, какие у них есть поля, какого они типа — любые ошибки связанные с этой неопределённостью всплывут только во время исполнения кода.да, неплохо. Но вы правда не видите разницы? Названия сущностей — строки. Название полей — строки. Типы данных никак не проверяются.
Согласен — это большой шаг вперёд. Но вот из их же документации:
$product = $entityManager->getRepository('Product') ->findOneBy(array('name' => $productName));и снова название сущности и поля — строки. И очевидно никакой проверки ни названий, ни типа данных до момента исполнения кода.
Для генерации запросов в JPA есть несколько подходов, например:
1) interface Repository - это такие интерфейсы в которых ты описываешь только как должны выглядеть функции для select/update/delete, а реализацию этих функций берёт на себя JPA. Например:
@Repositoryinterface UserInfoRepository : CrudRepository<UserInfo, Long> {fun findByGuidIn(guids: Iterable<UUID>): List<UserInfo>}В этом случае JPA сам создаст реализацию метода findByGuidIn с проверкой наличия поля guid в классе UserInfo и его типа. Притом эти проверки будут сделаны на этапе запуска приложения, а не на этапе вызова метода.
2) Использовать JPA Query Language - это такой аналог SQL в котором вы оперируете не названиями таблиц и полей в них, а названиями классов и полей в классах. Опять же, синтаксис этих запросов будет проверен на этапе запуска программы, и если приложение стартануло (или прошло какие-либо тесты, даже те которые не вызывают этот метод-запрос) — вы можете быть уверены что запрос будет работать как надо.
3) Для Kotlin есть полностью строго-типизированный DSL для построение SQL запросов. Выглядит это вот так:
val users = query {select(user)
from(user)
where {
user.email eq email
user.status eq status
}
}
тоже самое в Java
List result = new JPAQuery(entityManager).select(user)
.from(user)
.where(
user.email.eq(email)
.and(user.status.eq(status))
)
.fetch();
при таком подходе у вас никак не получится ошибиться в названии таблицы или полей или в их типах. С проверкой на этапе компиляции.
Так что да, большая часть запросов описывается декларативно, просто через название метода, его параметры и возвращаемый тип данных ORM сама строит SQL запрос. Почти во всех остальных случаях — JPA Query Language. Конечно иногда остаются единичные запросы которые лучше написать на чистом SQL — но это скорее очень редкое исключение, и покрывая тестами такие запросы вы можете быть спокойны в целом за работу вашего слоя взаимодействия с базой данных.