|
|
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, дк вот думал заставить Hibernate выполнить произвольный Insert а он все равно либо заполни id мне руками, либо excepion ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 13:46:55 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
BlazkowiczBlazkowiczТ.е. autogenerated keys не поддерживается вообще? У вас ID другим образом генерятся? Вам драйвер явно сообщает что методы с autogenerated keys не поддерживаются, а вы все равно в хибере используете Identity ID. Надо как-то решать. а где это вы увидели? O_o ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 13:47:48 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
32338а где это вы увидели? O_o http://docs.oracle.com/javase/6/docs/api/java/sql/Connection.html#prepareStatement%28java.lang.String,%20int%29 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 13:49:41 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, а предложения как это обойти? просто убрать @GeneratedValue() и ставить фиктивную idшку и прописать @SqlInsert ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 13:53:13 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
32338а предложения как это обойти? просто убрать @GeneratedValue() и ставить фиктивную idшку и прописать @SqlInsert ? база поддерживает GeneratedValue ? а драйвер? отнаследовать хиберовские классы и заменить методы на другие. ставить не "фиктивную idшку", а использовать другой метод получения ключей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 14:08:39 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, насколько мне известно из мануала по Sybase он генерит id-шники сам, но получить следующий у него нельзя... только после вставки можно получить уже готовый id к примеру: Код: sql 1. 2. но эм вставлять в поле ID которое является identity просто запрещено самим Sybase т.е. либо поле Identity и этим рулит Sybase либо поле ручного ввода, и этим рулит сам пользователь (что ни есть хорошо, так как последовательностей нету) вообщем и целом получается что надо использовать для вставки SQL так получается? если так то что будет если у меня используется в качестве менеджера транзакций Hibernate ? т.е. как поведет себя Connection Pool и не получится ли лишних коннектов к БД? P.S. использую аннотации @Transactional в спринговом конфиге написанно так: Код: xml 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 14:25:14 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
Читайте исходники хибера, диалект и то что у вас в Stacktrace. Вам нужно научить его делать "select @@identity". Возможно хибер это уже умеет. нужно только найти где включить. И второе это обойти вызов именно того метода prepareStatement(). Опять же по stackatrаce найти где именно он вызывается и почему именно он, а не один из альтернативных. Посмотрите ещё что у вас вот этот метод возвращает http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/dialect/SybaseDialect.html#supportsInsertSelectIdentity%28%29 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 14:35:50 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЧитайте исходники хибера Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 14:48:05 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, мда никогда не думал, что для маленького RESTful сервера придется рыскать по исходникам Hibernate =) мне уже начальник говорит выкинь ты из проекат это гавно юзай Spring JDBC и не парься.... а я все мучаюсь и мучаюсь.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 14:48:33 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
chpasha, это вот куда надо добавить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 14:50:39 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
chpasha, а у меня в исходниках немножко не так: Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 15:05:43 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
32338а у меня в исходниках немножко не так: все так, ты другой кусок кода зацепил. много бед, один ответ - надо дебажить исходник и смотреть что не так. должно работать. з.ы. с хибернейтом (да и не только с ним) поначалу всегда так. тут как в мультфильме, "лучше день потерять, потом за 5 минут долетим". но потерять придется больше чем день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 15:24:08 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
chpasha, там че-то совсем очень много всего.... эх придется убить пару недель наверное на это, главное потом что бы действительно "за 5 минут долететь", а то как-то много времени на это уйдет =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 15:39:02 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
32338chpasha, там че-то совсем очень много всего.... всего и не надо. как правило интересно либо место возникновения исключения либо то, что к этому вызову привело. но скорей всего у тебя что-то в маппингах не так. погугли просто на предмет hibernate+autogenerated keys+sybase и найди рабочие примеры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 15:43:32 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
А что вы хотели от legacy базы с экстравагантным драйвером. Вы бы ещё Hibernate 2.0 использовали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 15:46:16 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, не я уже, больше склоняюсь использовать Spring JDBC потому как в своем SQL я смогу безпрепятственно использовать весь синтаксис T-SQL от Sybase и индексы прописывать (которые очень часто Sybase имеет свойство терять) и никаких тебе проблем с insert да и выполнение хранимых процедур, вместо IUD операций тоже имеет свои плюсы но блин хотелось попользоваться Hibernate получить кайф от написания пары строк кода вместо мало кому нужного томика SQL + JDBC больше всего меня раздражает что работает все акромя INSERT прям уже хочется все бросить и уйти в монастырь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 16:10:41 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
32338прям уже хочется все бросить и уйти в монастырь... вначале всегда тяжело. я в свое время убил пол дня на то, чтобы хибер UUID гонял в postgres и обратно наиболее элегантным способом. как только начинаешь изучать, спотыкаешься на каждой мелочи. один раз нужно разобраться. только тогда пойдет профит. в твоей ситуации аналогично - один раз разберешься, дальше уже будешь знать как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 16:15:14 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
chpasha, да я это понимаю что надо один раз разобраться, только все равно не пойму, куда смотреть, за кем глядеть и откуда цепочка вьется короче говоря запутался я... надо на свежую голову брать в руки напильник а не как сейчас... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2012, 16:18:25 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
попробовав немного поэкспериментировать с JdbcTemplate я тут наткнулся на такую вещь, что он работает быстрее потому как на поиске я (к примеру) не использую транзакцию, т.е. убрал аннотацию @Transactional у метода сервиса (ну нету же смысла на 1-ну операцию тащить транзакцию), но насколько я понял для корректной работы SessionFactory.getCurrentSeccion() нужна транзакция... внимание вопрос ЗАЧЕМ?(может я конечно не много не понял как там это настроить правильно, но без транзакции великий Hibernate отказывается работать и говорит что сессия пустая) зачем использовать транзакцию в таких случаях как CRUD ? когда элемент один и не имеет связей? я конечно понимаю зачем нужны транзакции (это как бы пакетная операция которая, в случае чего должна откатится вся), но хоть убей не пойму ЗАЧЕМ нужно это дело для одной операции, и как рулить такими ситуациями когда транзакция не нужна и тянуть ее ну просто нету смысла (т.е. как сделать работу Hibernate без транзакций, просто чет я не нашел этого в мануале, или пролистал не обратив внимания, а спросить не у кого =( ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2012, 09:26:03 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
32338, Никак. Все изменения базы состояния бд в Хайбернейт делаются только в рамках транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2012, 09:56:31 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
schwa, но это же замедляет работу с БД примерно на треть! а когда работа с БД критична? то люди просто не используют Hibernate ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2012, 10:18:18 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
32338но это же замедляет работу с БД примерно на треть! Речь о Sybase? У остальных вроде не замедляет особо. А как целостность данных вы предлагаете сохранять без транзакций вообще? Есть Read-Only транзакции, возможно они в вашем случае будут быстрее. 32338а когда работа с БД критична? Работа с БД всегда критична. 32338то люди просто не используют Hibernate ? Hibernate не используют либо когда его не умеют готовить, либо когда это лишено смысла - нет большого дерева ассоциаций, данные организованы и обрабытываются в более табличном виде. Тогда толку от него не много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2012, 10:26:29 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, я и не говорю что не надо использовать транзакции просто когда идет один Select то смысл в транзакции? просто получается что замедляет работу select ID, Name from User where ID = ? что увеличивает время отклика.... я протестировал и получилось что 1000 чтений из БД с помощью jdbcTemplate и Hibernate примерно на треть разнятся т.е. видимо из-за работы в транзакции потому как jdbcTemplate я не использовал транзакции для такой выборки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2012, 10:42:14 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, в моем случае я его не могу приготовить из-за Sybase 11 и jconn3 которые не понимают автогенерацию.... и в нем нельзя (без применения костылей и подпорок) вставлять в таблицу идентификатор который описан как identity поле (автоинкрементовое) поэтому что бы не возиться с ним (потому как инфы об этом очень мало, а сам я пока не врубаюсь что да как) решил отложить этот вопрос.... это как в рекламе "Не люблю кошек. Ты просто не умеешь их готовить." да пока кухня с внутренностями Hibernate для меня табу.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2012, 10:48:54 |
|
||
|
подружить tomcat и hibernate
|
|||
|---|---|---|---|
|
#18+
32338я и не говорю что не надо использовать транзакции просто когда идет один Select то смысл в транзакции? :) Каждый запрос в базе выполняется в своей транзакции чтобы обеспечить ACID. Разница лишь в том управляете ли вы это транзакцией в ручную, или работает автокоммит. 32338просто получается что замедляет работу select ID, Name from User where ID = ? что увеличивает время отклика.... Нет, не замедляет. 32338я протестировал и получилось что 1000 чтений из БД с помощью jdbcTemplate и Hibernate примерно на треть разнятся т.е. видимо из-за работы в транзакции потому как jdbcTemplate я не использовал транзакции для такой выборки [/quot] Hibernate помимо чтения конвертирует ещё данные в объекты. Что вы там тестировали не очень-то понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2012, 10:50:57 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37873172&tid=2131387]: |
0ms |
get settings: |
17ms |
get forum list: |
20ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
58ms |
get topic data: |
17ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 324ms |
| total: | 538ms |

| 0 / 0 |
