powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate join
13 сообщений из 13, страница 1 из 1
Hibernate join
    #37703272
MrMuscul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день

Допустим есть класс, мапинг стандартный

Код: java
1.
2.
3.
4.
5.
Class1 {
   int id;
   int group_id;
   String name;
}



С помощь sql можно сделать обычный запрос:
Код: sql
1.
select t1.name, t2.name from table as t1 inner join table t2 on t1.id=t2.groupd_id



Как подобный запрос сделать средствами хибера? Гугл облазил но ничего не нашел.

что то подобное:
Код: java
1.
session.createQuery("select t1.name, t2.name from Class1 as t1 inner join Class1 as t2..... ")
...
Рейтинг: 0 / 0
Hibernate join
    #37703285
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Не используйте подчеркивание в полях и свойствах.
2) Для ORM джоина нужно иметь ассоциацию - OneToMany, ManyToOne.
Покажите нормальные классы и маппинги.
JOIN можно и на HQL и на Criteria API сделать.
...
Рейтинг: 0 / 0
Hibernate join
    #37703315
MrMuscul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну на самом деле тут примитивный пример сейчас будет. Просто хочу понять пока как это сделать.

маппинг
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com....">
  	<class name="Goods" table="goods">
		<id column="id" name="id">
			<generator class="increment"/>
		</id>
        <property name="groupId" column="group_id"/>
        <property name="name" column="name"/>
    </class>
</hibernate-mapping>



Класс
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class Goods {
	
	private Long id = null;
	
        private Long groupId = null;

	private String name = null;
	
	set and get..
}



Дальше с помощью хибера хочу сделать запрос
Код: sql
1.
select t1.name, t2.name from table as t1 inner join table t2 on t1.id=t2.groupd_id
...
Рейтинг: 0 / 0
Hibernate join
    #37703338
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ааа. Так таблица сама на себя джоинится? И вам нужны два разных имени? Объясните цель этого запроса. Просто если этого нет в маппинге и сущностях, то кроме как на SQL этого не сделать
session.createSQLQuery и вперед.
...
Рейтинг: 0 / 0
Hibernate join
    #37703351
MrMuscul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Связь один ко многим или подобные и потом джоинить их хибером умею. Но вот как один и тот же объект сджоинить с собой не знаю.
А по задаче:
Таблица с товарами. у каждого товара есть код его и код его группы. По сути одним запросом нужно получить все группы и товары.
...
Рейтинг: 0 / 0
Hibernate join
    #37703353
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Hibernate join
    #37703357
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrMusculТаблица с товарами. у каждого товара есть код его и код его группы. По сути одним запросом нужно получить все группы и товары.
Вопрос в том, почему группа сама по себе является товаром? (t1.id=t2.groupd_id)
...
Рейтинг: 0 / 0
Hibernate join
    #37703371
MrMuscul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczMrMusculТаблица с товарами. у каждого товара есть код его и код его группы. По сути одним запросом нужно получить все группы и товары.
Вопрос в том, почему группа сама по себе является товаром? (t1.id=t2.groupd_id)

Ну то что есть, то и поддерживаем) Судя по ссылке просто нужно создать связь один ко многим к той же таблице. Попробую :) Спасибо
...
Рейтинг: 0 / 0
Hibernate join
    #37703377
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrMuscul,
разнесите группы и товары.
Группа - это справочник-классификатор с именем группы
...
Рейтинг: 0 / 0
Hibernate join
    #37703381
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrMusculодин ко многим к той же таблице
к таблице - Группа
...
Рейтинг: 0 / 0
Hibernate join
    #37703475
MrMuscul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вопрос то в другом, как так сделать?) Все эти данные по сути для примера.
...
Рейтинг: 0 / 0
Hibernate join
    #37703688
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrMusculДа вопрос то в другом, как так сделать?) Все эти данные по сути для примера.
ОРМ не такой гибкий, как синтаксис SQL, чтобы решать абстрактные задачи.
...
Рейтинг: 0 / 0
Hibernate join
    #37704139
MrMuscul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну на самом деле получилось сделать достаточно легко. Обычный с set в классе как в случае со связью один ко многим.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate join
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]