Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 12

Родственники

18.04.2014, 18:15. Показов 594. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Есть сущность людей:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/**
 * Информация о лицах
 */
@Entity(name = "person")
@Table(name = "person", schema = "person")
@SequenceGenerator(name = "seq_id", sequenceName = "seq_id_person", schema = "person", allocationSize = 1, initialValue = 1)
@DynamicUpdate
public class Person {
 
    private static final long serialVersionUID = -9086630195448112459L;
 
    private Integer id;
 
    /**
     * Имя
     */
    private String firstName;
 
    /**
     * Фамилия
     */
    private String lastName;
 
    /**
     * Отчество
     */
    private String patronymic;
 
    /**
     * Родственники
     */
    private Set<Relative> relatives;
 
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_id")
    public Integer getId() {
        return id;
    }
 
    public void setId(Integer id) {
        this.id = id;
    }
 
    @NotNull
    @Length(max = 40)
    @Column(name = "first_name", length = 40, nullable = false)
    public String getFirstName() {
        return firstName;
    }
 
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
 
    @NotNull
    @Length(max = 40)
    @Column(name = "last_name", length = 40, nullable = false)
    public String getLastName() {
        return lastName;
    }
 
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
 
    @Length(max = 40)
    @Column(name = "patronymic", length = 40)
    public String getPatronymic() {
        return patronymic;
    }
 
    public void setPatronymic(String patronymic) {
        this.patronymic = patronymic;
    }
 
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "person", cascade = {
            CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE})
    public Set<Relative> getRelatives() {
        return relatives;
    }
 
    public void setRelatives(Set<Relative> relatives) {
        this.relatives = relatives;
    }
 
    @Override
    public boolean equals(Object value) {
        if (!(value instanceof Person)) {
            return false;
        }
        if (value == this) {
            return true;
        }
        Person obj = (Person) value;
        return obj.getId().equals(getId());
    }
 
    @Override
    public int hashCode() {
        int result = 29;
        result += 29 * (getId() != null ? getId().hashCode() : 0);
        result += 29 * (getFirstName() != null ? getFirstName().hashCode() : 0);
        result += 29 * (getLastName() != null ? getLastName().hashCode() : 0);
        return result;
    }
}
Есть сущность родственников:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/**
 * Информация о родственниках
 */
@Entity(name = "relative")
@Table(name = "relative", schema = "person")
@SequenceGenerator(name = "seq_id", sequenceName = "seq_id_relative", schema = "person", allocationSize = 1, initialValue = 1)
@DynamicUpdate
public class Relative implements Serializable {
    private static final long serialVersionUID = -9086630195448112459L;
 
    private Integer id;
 
    /**
     * Лицо
     */
    private Person person;
 
    /**
     * Лицо(родственник)
     */
    private Person personRelative;
 
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_id")
    public Integer getId() {
        return id;
    }
 
    public void setId(Integer id) {
        this.id = id;
    }
 
    @NotNull
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "person_id", nullable = false)
    public Person getPerson() {
        return person;
    }
 
    public void setPerson(Person person) {
        this.person = person;
    }
 
    @NotNull
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "person_relative_id", nullable = false)
    public Person getPersonRelative() {
        return personRelative;
    }
 
    public void setPersonRelative(Person personRelative) {
        this.personRelative = personRelative;
    }
 
    @Override
    public boolean equals(Object value) {
        if (!(value instanceof Relative)) {
            return false;
        }
        if (value == this) {
            return true;
        }
        Relative obj = (Relative) value;
        return obj.getId().equals(getId());
    }
 
    @Override
    public int hashCode() {
        int result = 29;
        result += 29 * (getId() != null ? getId().hashCode() : 0);
        return result;
    }
}
Ситуация следующая:
Допустим у меня есть жена. Меня отметили ее родственником. Соответственно при отображении моих родственников - она должна присутствовать. Можно ли на уровне сущностей можно поместить в мой
Java
1
Set<Relative> relatives;
её, а в её - меня?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2014, 18:15
Ответы с готовыми решениями:

Дядюшка Эксель и другие мелкие родственники не возвращаются домой
Вопрос ниже после примеров, пишу на маленьком экране и не получается привести к нормальному виду RetCode =...

Создать БД "Родственники" в Паскале
Доброе время суток! Нужна помощь в решении следующей задачи: &quot;Разработать базу данных «Список родственников» (фамилия, имя, отечество,...


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

Или воспользуйтесь поиском по форуму:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru