|
|
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
В чем разница, устанавливать анотации хайбернейта на свойстве или на геттере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2015, 11:39 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
rema174, AFAIK доступ к свойству будет отличаться - либо через аккцессоры, либо рефлексией сразу в поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2015, 11:48 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
т.е. работать-то все равно будет одинаково? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2015, 12:13 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
rema174т.е. работать-то все равно будет одинаково? А какие есть варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2015, 12:17 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
rema174т.е. работать-то все равно будет одинаково? Нет. setter же может сделать что-то своё. Можно даже сделать поле, которое будет "знать" только хибернейт, а в объекте вообще не будет для него одного поля. Хотя это изврат... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2015, 08:40 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
Alexey Tominrema174т.е. работать-то все равно будет одинаково? Нет. setter же может сделать что-то своё. если я правильно понял, то если нужно что-то провернуть в сеттере, то удобнен способ с сеттером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2015, 09:51 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
rema174Alexey Tominпропущено... Нет. setter же может сделать что-то своё. если я правильно понял, то если нужно что-то провернуть в сеттере, то удобнен способ с сеттером Главное- делать во всём проекте одинаково. А как выбирать- тут вопрос в том, что есть класс модели данных. Только ли данные (тогда без разницы), либо всё же он что-то делает- например хранит данные немного не так, как в БД (тогда только на методы), или может при установки одного поля бизнес-логикой менять другое- тогда на поля. Но сейчас считается правильно модель без кода вообще, так что выбор- исходя из чувства прекрасного разработчика :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2015, 10:05 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
BlazkowiczAFAIK доступ к свойству будет отличаться - либо через аккцессоры, либо рефлексией сразу в поле. Я вот это проверил экспериментальным путем. В любом случае доступ будет через аккцессоры. Так что имхо все равно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2015, 12:52 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
Pavel KurakinЯ вот это проверил экспериментальным путем. В любом случае доступ будет через аккцессоры. Так что имхо все равно. У меня есть подозрение что вы где-то заблуждаетесь. https://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/ Depending on whether you annotate fields or methods, the access type used by Hibernate will be field or property. The EJB3 spec requires that you declare annotations on the element type that will be accessed, i.e. the getter method if you use property access, the field if you use field access. Mixing annotations in both fields and methods should be avoided. Hibernate will guess the access type from the position of @Id or @EmbeddedId. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2015, 12:56 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
Pavel KurakinBlazkowiczAFAIK доступ к свойству будет отличаться - либо через аккцессоры, либо рефлексией сразу в поле. Я вот это проверил экспериментальным путем. В любом случае доступ будет через аккцессоры. Так что имхо все равно. Я тоже проверял- был именно проект, где setter'ы содержали дополнительный код. Не вызывалось. Всё через аннотации, jboss 6.x ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2015, 13:33 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
BlazkowiczУ меня есть подозрение что вы где-то заблуждаетесь. Очень может быть, но тем не менее при указании аннотации перед полем, вполне успешно выполняются действия описанные в геттере. Что касается разницы, она есть для hibernate validator, и это действительно описано в документации. А вот в документации по hibernate orm (той на которую можно попасть с hibernate.org) я такого не нашел. Blazkowicz, скажите, где Вы такие ссылки на документацию берете? С hibernate.org я не нашел как туда попасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2015, 18:49 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
Pavel KurakinBlazkowicz, скажите, где Вы такие ссылки на документацию берете? В гугле. Ссылку привел. Что не так? Pavel KurakinС hibernate.org я не нашел как туда попасть. Ну, вот открой ссылку на мануал с hibernate.org, и, о чудо! Она хостится на docs.jboss.org Вот, для 4ки http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/#mapping-declaration-property By default the access type of a class hierarchy is defined by the position of the @Id or @EmbeddedId annotations. If these annotations are on a field, then only fields are considered for persistence and the state is accessed via the field. If these annotations are on a getter, then only the getters are considered for persistence and the state is accessed via the getter/setter. That works well in practice and is the recommended approach. Ссылки на мануал от вас мы пока не видели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2015, 20:25 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВ гугле. Ссылку привел. Что не так? Да все так. В вопросе не было никакого сарказма и я вижу где документация хостится. BlazkowiczНу, вот открой ссылку на мануал с hibernate.org, и, о чудо! Она хостится на docs.jboss.org Вот, для 4ки Да, действительно Вы правы. Значит я не очень внимательно искал. Однако это не отменяет моего мнения. Я только что проверил, все аннотации стоят перед полями, а доступ все равно идет через геттер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 16:49 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
Pavel Kurakin, в приведенной цитате речь идет только про ключи. Скорее всего, доступ к полям унифицирован - через акцессоры, поэтому тут нет противоречия. Рыться в коде неохота, можно просто сделать логическое заключение: аннотации - это всего лишь метаданные, так же, как и XML. При меппинге с помощью XML работа идет через акцессоры, какой смысл городить отдельное поведение для аннотаций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 17:08 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
ivanra в приведенной цитате речь идет только про ключи. Не совсем. Речь о том что расположение аннотаций @Id и @EmbeddedId определяет способ доступа к состоянию сущности. А не только к свойству id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 17:12 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
Pavel KurakinОднако это не отменяет моего мнения. Я только что проверил, все аннотации стоят перед полями, а доступ все равно идет через геттер. Версия Hibernate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 17:13 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
Blazkowiczivanra в приведенной цитате речь идет только про ключи. Не совсем. Речь о том что расположение аннотаций @Id и @EmbeddedId определяет способ доступа к состоянию сущности. А не только к свойству id. Точно. Если прокрутить ниже, то там подробне про это, а также можно найти и про кастомизацию для отдельных полей: Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 17:21 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
rema174если я правильно понял, то если нужно что-то провернуть в сеттере, то удобнен способ с сеттером Наоборот. Если используется доступ через методы, то они могут быть только тупыми getter/setter. Если хибер получит из геттера не то что положил, эффект может быть непредсказуем. в лучшем случае будет ненужное обновление в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 04:46 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВерсия Hibernate? 4.2.16.Final ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 14:52 |
|
||
|
Hibernate: аннотации на свойстве или на методе
|
|||
|---|---|---|---|
|
#18+
Все, что я писал выше, прошу считать наглым враньем, потому что я олень. :) Нашел место где я поле меняю (прочитав его через геттер) прямо перед тем как хибер будет save делать. Так что да, если аннотация перед полем, то геттер не сработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 15:34 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38945806&tid=2125459]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 352ms |

| 0 / 0 |
