powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / не идет Hibernate->SQLQuery, из бд работает???
5 сообщений из 5, страница 1 из 1
не идет Hibernate->SQLQuery, из бд работает???
    #37834438
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил решить свою проблему грубым способом, но он работает. Заносит записи в бд, но я не могу их прочитать!
Из консоли, все запросы проходят, все выдает, даже ArrayList-ы печатаются, а вот насмотрелся примеров, делаю 1в1, но все-равно не могу извлечь из бд?

Что не так?

Вот запрос,

Код: java
1.
2.
3.
4.
5.
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		List moveHystory = new ArrayList();
		moveHystory = (List)session.createSQLQuery("select moveHystoryPlayer1 from games where serverName='"+serverName+"'").list();
		session.getTransaction().commit();



Класс.
Код: 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.
@Entity
@Table(name="games")
public class SaveParams {
	
	@Id
	@Column(name="serverName")
	private String serverName;
	
	//@Column(name="boardMatrix") private ArrayList boardMatrix;
	@Column(name="namePlayer1") private String namePlayer1;
	@Column(name="namePlayer2") private String namePlayer2;
	@Column(name="piecesColorPlayer1") private String piecesColorPlayer1;
	@Column(name="piecesColorPlayer2") private String piecesColorPlayer2;
	@Column(name="moveHystoryPlayer1") private ArrayList<String> moveHystoryPlayer1;
	@Column(name="moveHystoryPlayer2") private ArrayList<String> moveHystoryPlayer2;
	
	
	public SaveParams() {
		
	}

	public String getServerName() {
		return serverName;
	}

	public void setServerName(String serverName) {
		this.serverName = serverName;
	}

//	public ArrayList getBoardMatrix() {
//		return boardMatrix;
//	}
//
//	public void setBoardMatrix(ArrayList boardMatrix) {
//		this.boardMatrix = boardMatrix;
//	}

	public String getNamePlayer1() {
		return namePlayer1;
	}

	public void setNamePlayer1(String namePlayer1) {
		this.namePlayer1 = namePlayer1;
	}

	public String getNamePlayer2() {
		return namePlayer2;
	}

	public void setNamePlayer2(String namePlayer2) {
		this.namePlayer2 = namePlayer2;
	}

	public String getPiecesColorPlayer1() {
		return piecesColorPlayer1;
	}

	public void setPiecesColorPlayer1(String piecesColorPlayer1) {
		this.piecesColorPlayer1 = piecesColorPlayer1;
	}

	public String getPiecesColorPlayer2() {
		return piecesColorPlayer2;
	}

	public void setPiecesColorPlayer2(String piecesColorPlayer2) {
		this.piecesColorPlayer2 = piecesColorPlayer2;
	}

	public ArrayList<String> getMoveHystoryPlayer1() {
		return moveHystoryPlayer1;
	}

	public void setMoveHystoryPlayer1(ArrayList<String> moveHystoryPlayer1) {
		this.moveHystoryPlayer1 = moveHystoryPlayer1;
	}

	public ArrayList<String> getMoveHystoryPlayer2() {
		return moveHystoryPlayer2;
	}

	public void setMoveHystoryPlayer2(ArrayList<String> moveHystoryPlayer2) {
		this.moveHystoryPlayer2 = moveHystoryPlayer2;
	}

}



запись в таблице есть, теперь осталось ее извлечь или целым классом или по одному параметру, все-равно.

пробовал вот так
Код: java
1.
SaveParams result = (SaveParams)session.load(SaveParams.class, serverName);

- в итоге ничего не получил, все по нулям.

Если нельзя вытащить отдельный объект, то как вытащить ArrayList и String?

И как можно сохранить объект boardMatrix? В нем 144 значения Integer. Hibernate говорит, что значение сл велико для одной колонки. :(


Спасибо за помощь, и подсказки.!
...
Рейтинг: 0 / 0
не идет Hibernate->SQLQuery, из бд работает???
    #37836625
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_,

1) Слишком сумбурная формулировка вопросов
2) Не видно, где хотя бы один save/persist/update или хотя бы insert
3) Пользуйтесь Criteria
3) Если @id поле у вас ключ, а в таблице по факту ключом не является, то при load вы получите одну из этих записей, неизвестно какую именно, а при сохранении эксепшн о том что обновлена не 1 запись
...
Рейтинг: 0 / 0
не идет Hibernate->SQLQuery, из бд работает???
    #37843870
MrMuscul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первый вариант для получения по условиями
Код: java
1.
2.
3.
4.
	        Session session = sessionFactory.getCurrentSession();
                Criteria criteria = session.createCriteria(SaveParams.class)
                          .add(Restrictions.eq("id", id));
                return (SaveParams) criteria.uniqueResult()


Второй вариант
Код: java
1.
2.
3.
4.
5.
6.
	        Session session = sessionFactory.getCurrentSession();
		SaveParams params = (SaveParams) session
				.createQuery("from SaveParams where id=:id")
				.setLong("id", id)
				.uniqueResult();
		return (SaveParams) criteria.uniqueResult();



Получение всех
Код: java
1.
2.
3.
	        Session session = sessionFactory.getCurrentSession();
                Criteria criteria = session.createCriteria(SaveParams.class);
                return criteria.list()
...
Рейтинг: 0 / 0
не идет Hibernate->SQLQuery, из бд работает???
    #37843921
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrMusculВторой вариант
Код: java
1.
2.
3.
4.
5.
6.
	        Session session = sessionFactory.getCurrentSession();
		SaveParams params = (SaveParams) session
				.createQuery("from SaveParams where id=:id")
				.setLong("id", id)
				.uniqueResult();
		return (SaveParams) criteria.uniqueResult();


С id это шутка или общий подход? Если так, то в качестве обучающего материала проходит. Иначе - очень нехорошая практика: зачем использовать очень дорогой метод createQuery, когда есть get(Class, id)?
...
Рейтинг: 0 / 0
не идет Hibernate->SQLQuery, из бд работает???
    #37843986
MrMuscul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruckMrMusculВторой вариант
Код: java
1.
2.
3.
4.
5.
6.
	        Session session = sessionFactory.getCurrentSession();
		SaveParams params = (SaveParams) session
				.createQuery("from SaveParams where id=:id")
				.setLong("id", id)
				.uniqueResult();
		return (SaveParams) criteria.uniqueResult();


С id это шутка или общий подход? Если так, то в качестве обучающего материала проходит. Иначе - очень нехорошая практика: зачем использовать очень дорогой метод createQuery, когда есть get(Class, id)?
Условия то разные бывают. CreateQuery вообще лучше избегать. Но если человек просит, почему бы ему не дать ответ на его вопрос.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / не идет Hibernate->SQLQuery, из бд работает???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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