|
|
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть такой класс. @Getter @Setter @Entity @Table(name="takenbooks") public class TakenBooksDomain implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="id") private Long id; @Column(name="bookId") private Long bookId; @Column(name="readerId") private Long readerId; @Column(name="timeBookGot") private Timestamp timeBookGot; @Column(name="timeBookReturned") private Timestamp timeBookReturned; } В БД @Column(name="bookId") И @Column(name="readerId") Являются foreign key на id соответствующих таблиц. Мне бы хотелось в этот класс добавить что-то типа такого @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name = "bookId", referencedColumnName="id") private BookDomain book; Но при запуске вылетает org.hibernate.MappingException: Repeated column in mapping for entity: library.dao.domain.TakenBooksDomain column: bookId (should be mapped with insert="false" update="false") Как мне прописать аннотации, чтобы получить здесь ссылку на объект BookDomain, который имеет book.id = bookId (book это таблица с Entity BookDomain) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 15:51 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Geronemo, Всё ж, млять,написано в ошибке. Возьми словарь и переведи. Когда добавляешь ассоциацию, то private Long bookId; нужно удалить. Чтобы одна колонка не мапилась два раза (1 на поле и 1 на ассоциацию) Либо использовать (insert=false, update=false) как и написано в ошибке, чтобы сделать поле read-only отображением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 16:03 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо, вот с этой штукой (insert=false, update=false) заработало. Если это оптимальное решение вопроса, то все супер. Удалять Long bookId нельзя. Он много где нужен. Я просто не пробовал, т. к. хотел как-то более элегантно решить вопрос, напhимер, с чего оно взяло, что хочу иметь 2 колонки bookId . Мне нужна 1 колонка и 1 ссылка на объект, который является записью с сответвтующей id = bookId ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 16:44 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
хотя только что пришло в голову, если у меня в Entity будет BookDomain book, то bookId я могу брать из него. Типа такого. Может этот вариант лучше, чем первоначальный ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 16:47 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
GeronemoМожет этот вариант лучше, чем первоначальный ? Да, второе поле не нужно. Id всегда можно получить через this.book.id, даже если book ленивое свойство и не загружено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 16:49 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, правда? У меня если поле Lazy, то получить id только при использовании AccessType(Property) получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 20:00 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Для OneToMany ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 20:00 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
rdmBlazkowicz, правда? У меня если поле Lazy, то получить id только при использовании AccessType(Property) получается... У хибера тема проксирования постоянно меняется. Я не имел ввиду именно доступ через поле. Хотя если класс инструментировать - не вижу разница. Я имел ввиду лишь саму ассоциацию. При загрузке TakenBooksDomain можно получить bookId через свойство book, не делая выборку самой сущности Book. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 09:19 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, хочется услышать ваше авторитетное мнение, relationParentId property "Еще одной хорошей, хотя на мой взгляд спорной, идеей является определение полей класса, содержащих значения ключа родительской сущности. Таким образом, мы получаем возможность работать со связанной сущностью не выбирая ее из базы явно. Здесь просто необходим пример в коде" Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 18:43 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Есть схожий вопрос по тематике. Есть такой интерфейс Код: java 1. 2. 3. 4. Я хочу сделать метод, чтобы он доставал из БД последние number к-во записей, отсортированных по столбцу TimeBookGot Метод тыка и гугления отнял прилично времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 20:00 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Ну просто представьте себе, что у нас 10000 записей, зачем они все нужны, если задача составить что-то типа монитора текущей активности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 20:55 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
rdmBlazkowicz, хочется услышать ваше авторитетное мнение, Тупак, ИМХО. Возможно так нужно делать в какой-то ORM, но все версии Hibernate, с которыми я работал, обходились без этого. Хибер создаёт прокси на ассоциированый объект и в его id устанавливает Foreign Key текущей сущности, так что ассоциированая остаётся ленивой. Обращение к id не вызывает дозагрузки. А вот чтение других свойств у ленивой ассоциации уже вызывает чтение сущности по id. Опять же всё зависит и от настроек проксирования. Работа с полями и отказ от CGLIB накладывают свой отпечтаток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 21:36 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Какая-то фигня. Я уже почти нашел решение, но оказывается, что одновременно и сортировку и Page делать нельзя. Есть такой интерфейс, который мне почти помог Код: java 1. 2. 3. 4. 5. НО оказывается, что я могу либо отсортировать, либо получить Number элементов. А мне надо и то и то. Я бы давно уже сделал нужный мне запрос на native SQL и выполнил его с помощью EntityManager, но мне хочется сделать максимально красиво и по ходу дела разобраться в кк можно большем количестве нюансов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 21:42 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Geronemo, Pageable содержит в себе Sort ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 23:02 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
AdvaGeronemo, Pageable содержит в себе Sort Спасибо, разобрался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2015, 13:21 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Задача еще немного усложнилась. Вот такая у нас сущность Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. У меня есть 2 поля Код: java 1. 2. 3. 4. 5. которые заполняются так. Товарищ взял книгу на прочтение, в timeBookGot записывается текущее время. А в timeBookReturned остается null, сколь угодно долго, пока товарищ не вернет книгу. И тогда в это поле пишется также текущее время. Я хочу иметь UI таблицу , например, чтобы выводилось последние 20 книг, которые были взяты или возвращены. Получается же у меня либо одно, либо другое. А мне надо, чтобы где-то было какое-то сравнение timeBookGot и timeBookReturned. Типа, если книга еще не возвращена, то в сортировке участвует поле timeBookGot, если возвращено, то timeBookReturned. Можно ли тут при чтении из БД завести временную колонку, чтобы она принимала значения tempTime = ("timeBookReturned" == null ? name="timeBookGot" : "timeBookReturned") и сортировать уже по ней. Или какие-то еще хитрый варианты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2015, 22:04 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
На данный момент я решил тупо ввести еще одно поле, в которое буду записывать время как взятия, так и возвращения. Но это небольшой изврат, как мне кажется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2015, 22:12 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Я имел ввиду, что добавил еще одно поле в БД и каждый раз, в него веду запись дополнительной строчкой в Java. Работает. Но хочется, чтобы было не такое примитивное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2015, 22:22 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Geronemo, если ты сам проектируешь классы и схему базы, то на мой взгляд лучше сделать один вариант в качестве прототипа, и после его использования ты сразу увидишь минусы и плюсы. В отсутствие штатного человека, отвечающего за архитектуру можно над каждой буквой долго корпеть и слишком много времени потратить на мелочи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2015, 13:11 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
AdvaGeronemo, если ты сам проектируешь классы и схему базы, то на мой взгляд лучше сделать один вариант в качестве прототипа, и после его использования ты сразу увидишь минусы и плюсы. В отсутствие штатного человека, отвечающего за архитектуру можно над каждой буквой долго корпеть и слишком много времени потратить на мелочи. Согласен. Быть спецом по всем направлениям невозможно. И если у меня что-то не получается сделать оптимально (или близко к нему) за относительно вменяемое время, я делаю некий простой аналог + кидаю вопрос сюда. На мой последний вопрос никто не ответил, значит пусть будет в БД еще одно поле, ничего страшного, это не 5-е колесо у авто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2015, 15:28 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Небольшой оффтоп, у меня тут появилось несколько вопросов. Все чем я тут занимаюсь, это конечно хорошо. Я сам себе потягиваю уровень + могу парочку проектов, где идет активная работа с БД и потоками указать у себя в портфолио, что я так умею. У меня вопросы по сертификациям. На нескольких собеседованиях мне давали относительно простые задачи, но с подводными камнями. Собеседования я не проходил. И что любопытно, я пару задач оттуда давал своим знакомым java-программистам с очень хорошим опытом, в чей квалификации ни я ни их работодатель не сомневается. Они допускали те же ошибки, что и я. В общем, я тут подумываю подготовиться и сдать сертификат по Java, в связи есть несколько нюансов 1. Где скачать учебные материалы (я где-то натыкался на обучение за 430$, с учетом 2-ного падения рубля бред полный). 2. Где проходить сертификация - на oracle.com, либо есть какие-то отечественные уважаемые центры. 3. В целом как вы оцениваете КПД подобных мероприятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2015, 16:00 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
Geronemo У меня вопросы по сертификациям. На нескольких собеседованиях мне давали относительно простые задачи, но с подводными камнями. В вопросах официальной сертификации "подводных камней" нет. Всё строго по знаниям. Geronemo Собеседования я не проходил. И что любопытно, я пару задач оттуда давал своим знакомым java-программистам с очень хорошим опытом, в чей квалификации ни я ни их работодатель не сомневается. Они допускали те же ошибки, что и я. Субъективно. Покажи пример. Geronemo1. Где скачать учебные материалы (я где-то натыкался на обучение за 430$, с учетом 2-ного падения рубля бред полный). Ищите на торрентах страны. Раньше whizlabs делали мега качественные материалы. Geronemo 2. Где проходить сертификация - на oracle.com, либо есть какие-то отечественные уважаемые центры. Оракл имеет партнера, который занимается непосредственно сертификацией. У партнера куча точек по крупным и не очень городам. Ещё надо пообзванивать, поузнавать потому как при цене за экзамер в районе 400, можно купить ваучер за 150, а если ещё и на какую акцию набрести, то и за 100. Geronemo 3. В целом как вы оцениваете КПД подобных мероприятий. От подготовки результат отличный. От самой же сертификации, просто приятные воспоминания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2015, 16:09 |
|
||
|
Помогите с Entitty (JPA) классом
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСубъективно. Покажи пример.. List list = new ArrayList(); Collection col = list; list.add("one") list.add("two") list.add("three") list.remove(0); col.remove(0); Вопрос, чему равен list.size и col.size Пока что не надо писать, почему именно такой ответ, вдруг кого-нибудь еще заинтересует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2015, 19:58 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38880835&tid=2125797]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
135ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 450ms |

| 0 / 0 |
