Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113

Hibernate и реализация таблицы "друзья"

04.11.2016, 17:46. Показов 1414. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем есть таблица юзер и таблица друзья

Юзер содержит:
Юзернейм
пароль
емеил
количество друзей(count) или по другому счетчик

Друзья содержит:
Friend_one( это юзернейм человека = тот кто хочет добавить)
Friend_two (Это юзернейм человека = друг)
Status(Enum type ждет отклонено и подтверждена) заявка

Вот заплутался в реализации на Hibernate

Мне нужно сделать этот SQL код в представлении Hibernate
Но не совсем понял как это сделать правильно.

За ранее очень благодарен

SQL
1
2
3
4
5
6
7
CREATE TABLE `friends` (
`friend_one` VARCHAR(255) ,
`friend_two` VARCHAR(255) ,
`status` ENUM('0','1','2') DEFAULT '0',
PRIMARY KEY (`friend_one`,`friend_two`),
FOREIGN KEY (friend_one) REFERENCES users(username),
FOREIGN KEY (friend_two) REFERENCES users(username));

Таблица юзер
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
29
@Entity
@Table(name = "users")
public class User {
 
    @Min(4)
    @Pattern(regexp = "[a-zA-Z0-9]+")
    @Column(name = "username", nullable = false, unique = true, length = 32)
    private String username;
 
    @Min(5)
    @Column(name = "password", nullable = false, length = 16)
    private String password;
 
    @Column(name = "email", nullable = false, unique = true)
    private String email;
 
    @Column(name = "authority", nullable = false)
    private String authority;
 
    @Column(name = "enabled", nullable = false)
    private boolean enabled = false;
 
    @Column(name = "friend_count",nullable = false)
    private int friend_count;
 
    @Column(name = "session", nullable = false)
    private boolean session = false;
 
}

Таблица друзья
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Entity
@Table(name = "friends")
public class Friends {
 
    @ManyToOne
    @JoinColumn(name = "username", foreignKey = @ForeignKey(name = "friend_one"))
    private String friend_one;
 
    @ManyToOne
    @JoinColumn(name = "username", foreignKey = @ForeignKey(name = "friend_two"))
    private String friend_two;
 
    @Enumerated(EnumType.STRING)
    @Column(name = "status", nullable = false)
    private FriendsStatusEnum status;
}
Добавлено через 23 часа 37 минут
Что никто помочь не может?(
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2016, 17:46
Ответы с готовыми решениями:

[Hibernate] Реализация таблицы-справочника
Есть сущность "Задача" @Entity @Table(name = "problems") public class ProblemInfo { @Id @GeneratedValue @Column(name =...

Hibernate: создание таблицы-замыкания
Доброго времени суток! Прошу помощи по реализации такой сущности в Hibernate, таблица references(ссылки) в центре: Суть её в том,...

Hibernate использование таблицы manytomany
Здравствуйте. Entity: @Entity @Table(name = "company") public class Company { @Id @NotNull @GeneratedValue(strategy...

4
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
06.11.2016, 17:40  [ТС]
Ребята помогите сделать в hibernate
0
1 / 1 / 0
Регистрация: 30.10.2016
Сообщений: 10
06.11.2016, 18:06
В чём конкретно вопрос заключается, не вполне понятно?

Мне нужно сделать этот SQL код в представлении Hibernate
Hibernate формирует SQL код сам, он для этого и предназначен. Он ваши объекты пишет в базу. Например, вы пишите session.save(...), session.load(...) и Hibernate переводит это в sql-запросы для сохранения\извлечения записи в БД соответственно. Мне в своё время хорошо помогла эта статья по хибернейту https://habrahabr.ru/post/271115/
0
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
06.11.2016, 18:12  [ТС]
Проблема в том что в виде SQL-скрипта я понимаю как это сделать.
А вот в таком виде я не могу понять как сделать
Я знаю как создать таблицу, поля, один к одному, многие к многим. Но не могу сделать ManyToOne или OneToMany что бы он соответствовал SQL скрипту когда закомпилить код Hibernate.
То есть тот SQL код должен получится при компиляции Hibernate, но у меня не получается.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Entity
@Table(name = "friends")
public class Friends {
 
    @ManyToOne
    @JoinColumn(name = "username", foreignKey = @ForeignKey(name = "friend_one"))
    private String friend_one;
 
    @ManyToOne
    @JoinColumn(name = "username", foreignKey = @ForeignKey(name = "friend_two"))
    private String friend_two;
 
    @Enumerated(EnumType.STRING)
    @Column(name = "status", nullable = false)
    private FriendsStatusEnum status;
}
0
1 / 1 / 0
Регистрация: 30.10.2016
Сообщений: 10
06.11.2016, 18:31
Я сам новичок, но как я понимаю у вас в таблице юзер отсутствует связь с френдсами. @ManyToOne есть в friends, а @OneToMany в users нет. А должно быть что-то типа @OneToMany (mappedBy = "friend_one")
Вот тут про ManyToOne мини ролик: https://www.youtube.com/watch?... HwNtxiMf-0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.11.2016, 18:31
Помогаю со студенческими работами здесь

Hibernate. Вернуть некоторые колонки из таблицы
Добрый вечер. Пишу небольшой проект на связки Spring/Angular 5. При работе с базой данных при помощи Hibernate столкнулся со следующей...

Hibernate @Formula данные из другой таблицы
Добрый день! Подскажите пожалуйста, у меня есть 2 класса User и Region, также 2 таблицы User и Region. В классе User добавляю доп....

Hibernate удалить все записи из таблицы
Добрый день друзья! Не могу разобраться как удалить все записи из таблицы. Использовал запрос Session session = null; try { ...

Join промежуточной таблицы через hibernate criteria
Добрый день! У меня есть 2 сущности : Card и Menu связанные @ManyToMany. Тогда у меня есть 2 таблицы, плюс 1...

Hibernate и аннотации - связь таблицы саму к себе
День добрый. Помогите разобраться и составить корректную модель таблицы для Hibernate. Таблица представляет собой вложенный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru