|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
Получаю bad grammar sql exception ? Код: sql 1.
create table some_table(entity_guid varchar2(36), entity_value clob); Руками все вставляется на отлично с данными снятыми прям в дебаге но Mybatis чтото то там генерит дополнительно и ломает простой запрос Код: xml 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:17 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
Zzz79 еще один адепт ХИБЕР -ЗЛО? Наоборот я больше поклонник hibernate нежели mybatis. Кейс вот такой вот странный не работает и непонятно как дебажить. Судя по коду поковырял и погуглил никто толком не знает как вставить в clob (hello insert mybatis из доки не работает). Большей частью советы воспользоваться callable процедурой. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:49 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
В someEntity.entityValue какой тип? Попробуй для начала убрать to_clob и указать явно jdbcType в #{} ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:43 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
SpringMan, так я попробовал сначала и это не сработало, есть подозрение что mybatis "путает" string => varchar2 и string => clob и непонятно как правильно заставить его загнать в statement string Этот статемент проходит успешно Код: sql 1.
нормально вставляет с данными выдернутыми из дебага ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 23:04 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
Как конкретно пробовал? #{someEntity.entityValue,jdbcType=CLOB} так? Тут написано, что ClobTypeHandler должен вызываться, он вызывается? И текст ошибки бы еще) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 23:18 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
MyBatis вполне удобный, если много больших и сложных запросов ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 23:36 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
Zzz79 а зачем мне их писать в хмл? я их могу написать в обычной jdbc а если супер сложных запросов нет - нах оно вообще надо тянуть в проект human unreadable xml портянки вся это хмл шляпа давно уже прошлый век - отходите от нее коллеги ,как бы это не было больно Если запросы большие, то держать их в коде ужасно неудобно/нечитабельно и это приводит к ошибкам. Чтобы запрос можно было удобно прочитать и отлаживать, его хочется вынести в отдельный файл. Если в один файл хочешь положить несколько запросов, то нужна структура для файла. Какие еще есть удобные структуры для хранения запросов? Можешь предложить структуру вместо xml или спрособ хранения этих запросов? + mybatis дает возможность маппить результат запроса сразу в нужный dto - в голом jdbc с этим ResultSet-ом будет много лишней возьни ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 23:53 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
Zzz79 могу предложить жук и хибер) пс .если в голом ждбс много возни в резальсетом - ты столько же возишься с хмл портянками майбайтис от этой шляпы давно уже все отказались ,так как это не жпа ,а просто какой то новый вид извращения над ждбс,причем ждбс помоему даже проще в юзе Еще раз, есть проблема: большие sql запросы В хибернейте: 1) Через hql их написать часто просто невозможно 2) Нативные запросы в java коде - это боль, от который мы хотим уйти (почему описано постом выше) В jooq-е: 1) Большие запросы это просто нечитаемое нечто, которые невозможно отлаживать в sql редакторе Какие еще варианты решения? От MyBatis-а никто не отказывался, он всегда занимал узкую нишу для особых случаев. Проще это понятие относительное, кому-то изначально было тоже проще работать с jdbc, а не hibernate-ом. Учишь hibernate и он становится проще jdbc. Учишь mybatis и он становится проще jdbc. По сравнению с jdbc, mybatis сильно и упрощает и уменьшает размер кода ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 00:14 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
lleming, Это писали китайцы, он может вести себя дико. Если таки не совладаешь с батисом есть jdbi еще. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 07:39 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
Zzz79 не очень понятно чем длинный запорос лежаший в простыне хмл будет отличаться от запроса в жуке том же) Тем, что его нельзя просто взять и запустить в sql тулзе. Да и сам этот запрос захламлен java кодом. Вначале запрос пишут, а потом вставляют его в код. С jooq-ом надо написать sql запрос, потом написать аналогичный java код. И делать так каждый раз при правках Zzz79 а по поводу удобности дебага майбайтис - мы видим по наличию этой темы)) Количество тем со смыслом "какой же spring/hibernate/javaee/java/... неудобное Г" больше в разы. Отсюда делаем выводы, что эти все проекты хуже? Zzz79 редактор скл то зачем? бери запрос и в любой скл тулз его пихай и редактируй как тебе надо- помоему сложные запросы именно так и проектируются Ну редактор скл это и есть какой-то скл тулз ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 10:36 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
По предназначению MyBatis это не ORM... а ROM. Типа маппинг наоборот. Например если у вас есть легаси система где 100500 хранимых процедур на PL/SQL и вам надо с ней интегрироваться тогда Батис - это хороший выбор. Вот они так и пишут. https://en.wikipedia.org/wiki/MyBatis - В отличие от ORM, Mb не отображает Java Objs на таблицы БД но отображает Java МЕТОДЫ на SQL-операторы. - Mb позволяет вам юзать всю функционалность БД типа хранимок вьюшек запросов любой сложности и вендор-проприетарных фич. - ... Тоесть сравнивать его с хибером бесполезно т.к. сегменты их решаемых задач где-то не пересекаются. Мы будем выглядеть просто глупцами если будем их сравнивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 12:14 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
Zzz79 на хабре как раз таки его представляют Или, как обычно, всё зависит от конкретного автора и конкретной статьи? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:52 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
Zzz79 mayton По предназначению MyBatis это не ORM... а ROM. Типа маппинг наоборот. Например если у вас есть легаси система где 100500 хранимых процедур на PL/SQL и вам надо с ней интегрироваться тогда Батис - это хороший выбор. Вот они так и пишут. пропущено... Тоесть сравнивать его с хибером бесполезно т.к. сегменты их решаемых задач где-то не пересекаются. Мы будем выглядеть просто глупцами если будем их сравнивать. на хабре как раз таки его представляют как более быструю альтернативу хиберу кстати Ну это как сказать что резиновая женщина - альтернатива. Не знаю. Каждый проект надо отдельно рассматривать. Попробовать пилот с Mb, Hiber. И где-то на 1-й sprint уже будет видно что подходит а что нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:00 |
|
Как продебажить что там нагенерил Mybatis?
|
|||
---|---|---|---|
#18+
SpringMan Как конкретно пробовал? #{someEntity.entityValue,jdbcType=CLOB} так? Тут написано, что ClobTypeHandler должен вызываться, он вызывается? И текст ошибки бы еще) Ошибка Bad sql grammar. Вообщем непонятно почему но заработало. Вроде ничего не менял. Тут следует упонянуть что сообщения об ошибках в oracle еще те в Postgresql поприятней будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 18:54 |
|
|
start [/forum/topic.php?fid=59&msg=39972526&tid=2120767]: |
0ms |
get settings: |
8ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
31ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
262ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 600ms |
0 / 0 |