Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
 
parkito
11 / 11 / 9
Регистрация: 22.03.2010
Сообщений: 693
#1

Выполнение запроса в Hibirnate - Java EE

17.08.2016, 16:00. Просмотров 243. Ответов 7
Метки нет (Все метки)

Здравствуйте. Помогите, пожалуйста, как можно решить следующую проблему.
Есть база данных. Нужно вывести из программы содержание таблицы Tariffs_have_TariffOption. Для понимание работы фремворка, я бы хотел вывести это информацию двумя способами. Первый - это без создания класса Tariffs_have_TariffOption, второй с помощью создания этого класса.

Вот такой запрос я бы хотел исполнить.

SQL
1
2
3
4
5
6
7
8
SELECT
  Tariffs.title      AS tariff,
  TariffOption.title AS tariffOption
FROM Tariffs
  INNER JOIN Tariffs_have_TariffOption ON Tariffs.id = Tariffs_have_TariffOption.Tariffs_id
  INNER JOIN TariffOption ON Tariffs_have_TariffOption.TariffOption_id = TariffOption.id
WHERE Tariffs.title = 'Basic'
GROUP BY tariff, tariffOption;
Как его выполнить в хибернте без классов-сущностей?

Насчет второго метода, я заготовил класс.

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
@Entity
@Table(name = "Tariffs_have_TariffOption")
public class Tariff_has_TariffOption {
 
    @Column(name = "TariffOption_id")
    private long TariffOption_id;
 
    @Column(name = "Tariffs_id")
    private long Tariffs_id;
 
    public Tariff_has_TariffOption() {
    }
 
    public Tariff_has_TariffOption(long TariffOption_id, long Tariffs_id) {
        this.TariffOption_id = TariffOption_id;
        this.Tariffs_id = Tariffs_id;
    }
 
    public long getTariffOption_id() {
        return TariffOption_id;
    }
 
    public long getTariffs_id() {
        return Tariffs_id;
    }
 
    public void setTariffOption_id(long tariffOption_id) {
        TariffOption_id = tariffOption_id;
    }
 
    public void setTariffs_id(long tariffs_id) {
        Tariffs_id = tariffs_id;
    }
}
Онако тут я не могу понять как связать вышепредставленный запрос и класс-сущность.
http://www.cyberforum.ru/ms-access/thread1481806.html
0
Миниатюры
Выполнение запроса в Hibirnate  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2016, 16:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выполнение запроса в Hibirnate (Java EE):

1с выполнение запроса
Помогите пожалуйста выполнить запрос, делаю так: Var doc:olevariant; ...

Выполнение запроса
QSqlQuery query("SELECT login_user FROM users WHERE password_user =...

выполнение запроса
два случая один работает второй нет :( почему?? что делать?? 1. обращение к...

Выполнение запроса
Доброго времени суток. В общем есть БД Access. В ней есть таблица и запрос. В...

Выполнение запроса
Я скриптом вывожу на страницу таблицу, информация из которой все время...

7
KEKCoGEN
Эксперт Java
2037 / 1912 / 494
Регистрация: 28.12.2010
Сообщений: 7,656
17.08.2016, 17:07 #2
Цитата Сообщение от parkito Посмотреть сообщение
Как его выполнить в хибернте без классов-сущностей?
Hibernate это ORM фреймворк. То есть он создан для того чтобы мапить таблицы в ваши классы, поэтому если вы хотите просто вытащить resultSet, зачем вам хибернейт?
0
parkito
11 / 11 / 9
Регистрация: 22.03.2010
Сообщений: 693
17.08.2016, 17:40  [ТС] #3
KEKCoGEN, Мне просто интересна сама возможность. Нпример, нужно быстро что-то вывести, а структуру разрабатывать долго.
0
KEKCoGEN
Эксперт Java
2037 / 1912 / 494
Регистрация: 28.12.2010
Сообщений: 7,656
17.08.2016, 17:45 #4
parkito, можно получить коннекшн к БД из EntityManager и использовать обычный JDBC подход. Это уже будет не хибернейт.

Добавлено через 2 минуты
Вот тут про native ещё пишут....примеров в гугле полно
0
parkito
11 / 11 / 9
Регистрация: 22.03.2010
Сообщений: 693
17.08.2016, 17:50  [ТС] #5
KEKCoGEN, Хорошо. Если произвольный запрос - это не к хибернейту. А как через хибернейт увидеть "Отпции тарифных планов" Я не понимаю, как с сущностями в этой ситуации рабоать. Окей, есть все три класса. Тогда выборку нужно производить руками с Java без помощи ORM?
0
KEKCoGEN
Эксперт Java
2037 / 1912 / 494
Регистрация: 28.12.2010
Сообщений: 7,656
17.08.2016, 18:03 #6
parkito, вы должны описать отношение классов так же как и отношение сущностей. Гуглите аннотации @OneToMany, @ManyToOne
Затем когда замапите все, сделаете обычную выборку в класс Tariffs_have_TariffOption и получите всю нужную информацию
0
parkito
11 / 11 / 9
Регистрация: 22.03.2010
Сообщений: 693
17.08.2016, 22:23  [ТС] #7
KEKCoGEN, Хорошо. Допустим с отношениями сущностей я разберусь. А что значит сделать выборку в классе? Как это ораганизовать все еще не понимаю.
0
KEKCoGEN
Эксперт Java
2037 / 1912 / 494
Регистрация: 28.12.2010
Сообщений: 7,656
17.08.2016, 23:03 #8
parkito, в любом хеллоу ворлде хибернейта это делают. Как вы учите хибер?
0
17.08.2016, 23:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2016, 23:03
Привет! Вот еще темы с решениями:

Залипает выполнение запроса
Всем добрый день. Oracle 11g + SQLDeveloper Проблема: Выполняю скрипт,...

Параллельное выполнение запроса
Привет! Ситуация следующая, есть процедура dbo.Test, принимает текстовый...

Выполнение запроса по таймеру
что-то я накуралесил.. короче хотел вывести результат sql запроса в Label, но...

Выполнение UPDATE запроса
Добрый день! Есть база данных MySQL, в ней таблица с некоторым набором полей,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru