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

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

13.11.2019, 23:34. Показов 1580. Ответов 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
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru