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

Hibernate + MySQL

28.08.2018, 11:16. Показов 1353. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть база:
instructor связан с certificate как one-to-many по полю instr_id.
БАЗА заполнена, не пустая.

MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-- I N S T R U C T O R
create table if not exists instructor (
    instr_id int primary key auto_increment,
    first_name varchar(30) not null,
    second_name varchar(50),
    age int,
    phone varchar(15)
);  
 
-- C E R T I F I C A T E
create table if not exists certificate (
    certif_id int primary key auto_increment,
    number varchar(10) not null unique,
    degree varchar(7) not null,
    date_pass date,
    instr_id int not null,
    foreign key (instr_id) references instructor(instr_id)
);
domain Instructor:


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
@Entity
@Table(name = "instructor")
public class Instructor {
 
    @Id
    @Column(name = "instr_id")
    private int instructorId;
 
    @Column(name = "first_name", nullable = false, length = 30)
    private String firstName;
 
    @Column(name = "second_name", length = 50)
    private String secondName;
 
    @Column
    private byte age;
 
    @Column(length = 15)
    private String phone;
 
    @OneToMany(mappedBy = "instructor")
    private Set<Certificate> certificateSet;
 
    ....
   /// внизу конструкторы, сеттеры и геттеры
 
}
domain Certificate:

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
@Entity
@Table(name = "certificate")
public class Certificate {
    @Id
    @Column(name = "certif_id")
    private int certificateId;
 
    @Column(nullable = false, unique = true)
    private String number;
 
    @Column(length = 7)
    private String degree;
 
    @Column(name = "date_complete")
    private GregorianCalendar dateCompletion;
 
    @OneToMany
    @JoinColumn(name = "certif_id")
    private Instructor instructor;
 
    ....
   /// внизу конструкторы, сеттеры и геттеры
 
}
Делаю dao:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class InstructorDAOImpl implements InstructorDAO {
    private final SessionFactory sessionFactory;
 
    public InstructorDAOImpl(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }
 
    @Override
    public List<Instructor> getAll() {
        Session session = sessionFactory.openSession();
        Transaction transaction = session.beginTransaction();
 
    // domain.Instructor - инструктор лежит в папке domain 
        List<Instructor> instructors = session
                .createQuery("from domain.Instructor")
                .list();
 
        transaction.commit();
        session.close();
 
        return instructors;
    }
}
Тестовый метод - хочу достать всех instructors:

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
public class Application {
    public static void main(String[] args) {
        Configuration configuration = new Configuration();
        configuration
                .configure("hibernate.cfg.xml")
                .addAnnotatedClass(Instructor.class)
                .addAnnotatedClass(Certificate.class);
        System.out.println("Hibernate Configuration loaded");
 
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
                .applySettings(configuration.getProperties()).build();
        System.out.println("Hibernate Annotation serviceRegistry created");
 
        SessionFactory sessionFactory
                = configuration.buildSessionFactory(serviceRegistry);
 
        InstructorDAO instructorDAO = new InstructorDAOImpl(sessionFactory);
 
        List<Instructor> instructors = instructorDAO.getAll();
 
        for (Instructor instructor : instructors) {
            System.out.println(instructor.toString());
        }
 
        sessionFactory.close();
    }
}
Файл конфигурации (hibernate.cfg.xml):

XML
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
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">
            jdbc:mysql://localhost:3306/kuznecov_dojo?serverTimezone=UTC&amp;useSSL=false
        </property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <!-- create, create-drop, update, validate -->
        <property name="hibernate.hbm2ddl.auto">update</property>
 
        <mapping class="domain.Instructor"/>
        <mapping class="domain.Certificate"/>
        <mapping class="domain.SportClub" />
 
    </session-factory>
</hibernate-configuration>

ПРОБЛЕМА в методе getALL().

Java
1
2
3
List<Instructor> instructors = session
                .createQuery("from domain.Instructor")
                .list();
После instructors.size == 0;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.08.2018, 11:16
Ответы с готовыми решениями:

Java+MySQL+Spring+Hibernate tutorials
Добрый день, уважаемое сообщество программистов. Я новичок в Java. Сейчас есть необходимость изучить работу с БД, а именно с MySQL. Есть...

Проверка на уникальность логина - MySql, Hibernate
У меня в базе данных есть таблица users с полями id, login, password. Поле login в таблице помечено как UNIQUE. Связь с БД идет...

hibernate
Здравтсвуйте, не могу понять как этот вопрос задать googl'у. Допустим, есть таблица в которой больше 40 полей, как не описывать каждое...

3
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
28.08.2018, 22:44
Если не ошибаюсь, вот здесь
Цитата Сообщение от AnastasiyaSPSTU Посмотреть сообщение
from domain.Instructor
пакет не нужно указывать, только класс
0
 Аватар для snajper_ro
116 / 101 / 52
Регистрация: 14.09.2011
Сообщений: 696
Записей в блоге: 1
29.08.2018, 11:53
иногда бывает что надо, я правда не копался почему, до сих пор тайной осталось
0)упростите вашу задачу к самому простому, это единтсвенный способ решать любую задачу очень быстро и самостоятельно,
то есть двигаться от абсолютно корректного кода к проблемным местам
1)точно оно пишет туда, куда надо
2)попробуйте insert
0
0 / 0 / 0
Регистрация: 23.08.2016
Сообщений: 47
29.08.2018, 11:56  [ТС]
Пакет в моем случае указывать надо было. Проблема решена путем исключения из hibernate.cfg.xml:
XML
1
2
        <mapping class="domain.Instructor"/>
        <mapping class="domain.Certificate"/>
А также добавления к configuration
Java
1
2
              .addAnnotatedClass(Instructor.class)
              .addAnnotatedClass(Certificate.class);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2018, 11:56
Помогаю со студенческими работами здесь

Hibernate
Начал изучать Hibernate. Создал небольшой проект. С следующим содержанием. pom.xml &lt;project...

Hibernate
Привет кодеры! У меня несколько вопросов имеются. 1) У entityManager есть методы: сохранения сущности persist, обновления сущности...

Generic и Hibernate
Пытаюсь написать получение из базы данных с помощью generic и что то не получается. собственоо сам метод: @Component public...

Hibernate книга
Кто знает хорошую книгу по hibernate? Что я хочу узнать, как хорошо настраивать через persistence.xml? . Или может кто-то имеет must...

Java + Hibernate
Всем, привет. Только начал знакомиться с hibernate. Все по шагам делал на сайте http://google.com Скачал исходник, изменил в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru