Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Sma6nta
5 / 3 / 1
Регистрация: 12.05.2019
Сообщений: 201

Как вытащить поле у обьекта присоединенного many-to-one в hibernate

13.11.2019, 23:34. Показов 1599. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть 2 обьекта. Rabbit и Note. Одной ноте соответствует один Rabbit .
пытаюсь считать и распечатать список нот. как это сделать чтоб в Note подтягивалось Rabbit.name автоматически вместо ID?

На этапе выполнения у Note в String rabbit.getName() и даже rabbit у Note выбивает NUllPointerExeption (((

там что-то простое , но я пятый час не могу найти что(

заранее спасибо.


XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibernate-mapping">
 
    <class name="classes.Note" table="note_table"  >
        <id name="id" column="id">
        <generator class="identity"/>
        </id>        
        <property name="rabbitName" column="name"/>
        <property name="text" column="text"/>
        <property name="date" column="date_note"/>        
    
    <many-to-one name="rabbit" not-found="ignore" column="id" insert="false" update="false"
                  class="classes.Rabbit"
                  cascade="save-update"/>
                  
</class>
</hibernate-mapping>
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibernate-mapping">
 
    <class name="classes.Rabbit" table="rabbit_table" lazy = "false">
    
     <id name="id" column="id">
            <generator class="identity"/>
        </id>       
        <property name="name" column="name"/>
        <property name="sex" column="sex"/>
        <property name="dateOfBirth" column="date_of_birth"/>
        <property name="count" column="count"/>
        <property name="personDiary" column="person_diary"/>
    </class>
</hibernate-mapping>
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
package classes;
 
import java.sql.Date;
import java.util.Calendar;
 
public class Note implements Comparable<Note> {
    private int id;
    private int rabbitName;
    private String text;
    private Date date;
    private Rabbit rabbit;
 
    public Note(int rabbitName, String text, Date date) {
        this.rabbitName = rabbitName;
        this.text = text;
        this.date = date;
    }
 
    public Note() {
    }
 
    public int getRabbitName() {
        return rabbitName;
    }
 
    public void setRabbitName(int rabbitName) {
        this.rabbitName = rabbitName;
    }
 
    public String getText() {
        return text;
    }
 
    public void setText(String text) {
        this.text = text;
    }
 
    public Date getDate() {
        return date;
    }
 
    public void setDate(Date date) {
        this.date = date;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public Rabbit getRabbit() {
        return rabbit;
    }
 
    @Override
    public int compareTo(Note note) {
        return (findDaysLeft() - note.findDaysLeft());
    }
 
    public int findDaysLeft() {
        Calendar note = Calendar.getInstance();
        note.setTime(date);
        Calendar today = Calendar.getInstance();
        int daysLeft = today.get(Calendar.DAY_OF_YEAR) - note.get(Calendar.DAY_OF_YEAR);
        if ((note.get(Calendar.YEAR) - today.get(Calendar.YEAR)) > 0) {
            daysLeft -= 180;
        }
        return daysLeft;
    }
 
    @Override
    public String toString() {
        return id + ")  '" + rabbit.getName();// + "' " + text + " дата: " + date + " осталось " + findDaysLeft() + " дней";
    }
 
    public void setRabbit(Rabbit rabbit) {
        this.rabbit = rabbit;
    }
 
}
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
package classes;
 
import java.sql.Date;
import java.util.Calendar;
 
public class Rabbit {
    private int id;
    private String name;
    private int sex;
    private Date dateOfBirth;
    private int count;
    private int age;
    private String personDiary;
 
    public Rabbit(String name, int sex, Date dateOfBirth, int count, String personDiary) {
        this.name = name;
        this.sex = sex;
        this.dateOfBirth = dateOfBirth;
        this.count = count;
        this.personDiary = personDiary;
    }
 
    public Rabbit() {
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public int getCount() {
        return count;
    }
 
    public void setCount(int count) {
        this.count = count;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public Date getDateOfBirth() {
        return dateOfBirth;
    }
 
    public void setDateOfBirth(Date dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public int getSex() {
        return sex;
    }
 
    public void setSex(int sex) {
        this.sex = sex;
    }
 
    public String getPersonDiary() {
        return personDiary;
    }
 
    public void setPersonDiary(String personDiary) {
        this.personDiary = personDiary;
    }
 
    private int calculateRabbitAge(Date birthDate) {
        return 1;
    }
 
    @Override
    public String toString() {
        return "'" + name + "'" + "  " + (sex == 1 ? "wooman" : sex == 3 ? "little rabbit" : "man") + "     age: "
                + calculateRabbitAge(dateOfBirth) + " month     " + count + "  count";
    }
 
}


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    @SuppressWarnings("unchecked")
    public ArrayList<Note> readNoteFromBase() {
        List<Note> listNotes;
        SessionFactory factory = new Configuration().configure().buildSessionFactory();
        try (Session session = factory.openSession()) {
 
            Transaction transaction = session.beginTransaction();
            listNotes = (List<Note>) session.createQuery("from Note").list();
            transaction.commit();
            if (listNotes != null) {
                for (Note note : listNotes) {
                    if (note != null) {
                        Hibernate.initialize(note.getRabbit().getName());
                    }
                }
            }
        }
 
        return (ArrayList<Note>) listNotes;
    }
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
ноя 13, 2019 9:50:25 PM org.hibernate.hql.internal.QueryTranslat orFactoryInitiator initiateService
INFO: HHH000397: Using ASTQueryTranslatorFactory
Hibernate: select note0_.id as id1_1_, note0_.name as name2_1_, note0_.text as text3_1_, note0_.date_note as date_not4_1_ from note_table note0_
Hibernate: select rabbit0_.id as id1_2_0_, rabbit0_.name as name2_2_0_, rabbit0_.sex as sex3_2_0_, rabbit0_.date_of_birth as date_of_4_2_0_, rabbit0_.count as count5_2_0_, rabbit0_.person_diary as person_d6_2_0_ from rabbit_table rabbit0_ where rabbit0_.id=?
Hibernate: select rabbit0_.id as id1_2_0_, rabbit0_.name as name2_2_0_, rabbit0_.sex as sex3_2_0_, rabbit0_.date_of_birth as date_of_4_2_0_, rabbit0_.count as count5_2_0_, rabbit0_.person_diary as person_d6_2_0_ from rabbit_table rabbit0_ where rabbit0_.id=?
Добавлено через 22 минуты
волшебный форум. стоило создать темуц и проблема которая не решалась 5 часов решилась))))
ошибка найдена.

там замаплено не на ту колонку было)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2019, 23:34
Ответы с готовыми решениями:

Экземпляр в хедере. Обьект в меин. Функция в cpp модифицирует поле обьекта. Как сделать?
Как сделать что бы void modif() изменял значение поля hours для обьекта st2. Есть 3 файла: 1.h 2.cpp main.cpp 1.h class...

Как можно вытащить из БД запись фильтруя записи в поле 'дата' только по значению 'год'?
Как можно вытащить из БД запись фильтруя записи в поле 'дата' только по значению 'год'? К примеру в поле БД 'data' есть запись...

Уникально поле в hibernate или индесация полей
Всем доброго... Есть сущность в hibernate с полями @Entity @Table public class RentUrl { @Id @GeneratedValue ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2019, 23:34
Помогаю со студенческими работами здесь

Как вытащить программно поле "Заголовки интернета", которое присутствут в параметрах сообщения?
Очень интересует как вытащить программно поле &quot;Заголовки интернета&quot;, которое присутствут в параметрах сообщения.

Вытащить BLOB поле
Привет! Помогите пожалуйста, не хватает знаний. Есть таблица в ней поле определено типа BLOB В PL\SQL открываю таблицу , двойным...

Вытащить поле из таблицы
Мне нужно вытащить значение поля avatar из таблицы users с id равным id пользователя, использую вот такой код: $id = $_SESSION; ...

Исключительный доступ обьекта к полям другого обьекта avr/c++
исключительный доступ обьекта к полям другого обьекта avr/c++ добрый день есть два обьекта Data &amp; Math - Data - элемент...

Как вытащить из свойства fields recordset вытащить данные в массив
Как вытащить из свойства fields recordset вытащить данные в массив ассоциативный , подскажите плиз


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru