powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate createQuery
10 сообщений из 10, страница 1 из 1
Hibernate createQuery
    #38960534
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка
org.hibernate.HibernateException: createQuery is not valid without active transaction
at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:352)
at com.sun.proxy.$Proxy35.createQuery(Unknown Source)

возникает в файле


Код: 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.
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.epam.edu.jtc.service.HibernateUtilService;
import com.epam.edu.jtc.dto.LoginDTOForm;

//@Repository
public class AuthorizationService {
		
	//@Autowired
    private     SessionFactory sessionFactory; 
 
     
	public   List checkAuthorization(LoginDTOForm userV) {
		 
		SessionFactory sf = HibernateUtilService.getSessionFactory();
		Session session = sf.getCurrentSession();
		List userList = session
				.createQuery(
						"from User u where u.login='" + userV.getLoginField()
								+ "' and u.password='"
								+ userV.getPasswordField() + "'").list();

		session.close();
	 
		return userList;

	}
	public   SessionFactory getSessionFactory() {
		return sessionFactory;
	}
	public   void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
	
	
	
	
}




HibernateUtilService.java
Код: 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.
import org.apache.log4j.Logger;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtilService {

	private static final SessionFactory sessionFactory = buildSessionFactory();
	 private static final Logger log = Logger.getLogger(HibernateUtilService.class);
	// @SuppressWarnings("deprecation")
	private static SessionFactory buildSessionFactory() {
		try {
			 
			return (SessionFactory) new Configuration().configure( )
					.buildSessionFactory();
			
		} catch (Throwable ex) {
			 
			 log.error("Initial SessionFactory creation failed" );
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public static void shutdown() {
		// Close caches and connection pools
		getSessionFactory().close();
	}

}
...
Рейтинг: 0 / 0
Hibernate createQuery
    #38960562
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldenhawk,

транзакцию открывать надо

и зачем получать из базы список юзеров одним и тем же логином и паролем :-)
...
Рейтинг: 0 / 0
Hibernate createQuery
    #38960565
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rema174,
Это логин и пароль при авторизации, тут проверяю есть ли такой в базе.
...
Рейтинг: 0 / 0
Hibernate createQuery
    #38960571
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldenhawk,
я имею ввиду что такой юзер если и будет в базе то только один
...
Рейтинг: 0 / 0
Hibernate createQuery
    #38960668
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rema174,
как транзакцию открыть? @Transactional перед методом?
...
Рейтинг: 0 / 0
Hibernate createQuery
    #38960754
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Transaction tx = null;
Session session = HibernateUtil.getSessionFactory().openSession();
tx = session.beginTransaction();
...
tx.commit();
...
Рейтинг: 0 / 0
Hibernate createQuery
    #39068637
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Помогите разобраться...
Пробую вызвать хранимую процедуру MS SQL 2008.
В процедуре два выходных параметра и два входящих:
Код: plaintext
1.
2.
3.
4.
5.
PROCEDURE [dbo].[Product_Create](
        @Return  int  output,
        @ProdID numeric(18,0)  output,

        @PassID numeric(18,0),
        @Amount numeric(18,2))
Вроде как есть несколько подходов к вызову процедуры из/через Hibernate 4.3 среди которых:
1. С использованием session.createSQLQuery
2. С использованием именнованного запроса, когда нужно мэппить поля в конфигурационом файле (18.2.2. Using stored procedures for querying документации)

Сначала глобальный вопрос: можно ли использовать session.createSQLQuery при вызове процедуры с двумя входящими и двумя исходящими параметрами (1 подход)? Я пытаюсь это сделать так:


Код: java
1.
2.
3.
4.
Query qr = session.createSQLQuery("{? = Product_Create (:PassID, :Amount)});

qr.setParameter("PassID", new BigInteger("999999999"));
qr.setParameter("Amount", new BigDecimal("87384738"));
...
Рейтинг: 0 / 0
Hibernate createQuery
    #39068724
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Я пытаюсь это сделать так:
ну дак и попытайся. Дольше будешь спрашивать.
Вчера был вопрос про хранимки.
Ну, то что у тебя 2 выходных тебе аукнется не раз. Зачем было так писать?
Это не масштабируемо.
...
Рейтинг: 0 / 0
Hibernate createQuery
    #39069455
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, спасибо за идею. Попробую сделать один. Это же нормально?
...
Рейтинг: 0 / 0
Hibernate createQuery
    #39069711
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
с двумя параметрами, результат у меня такой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Exception in thread "main" java.lang.NullPointerException
	at org.hibernate.loader.Loader.processResultSet(Loader.java:950)
	at org.hibernate.loader.Loader.doQuery(Loader.java:921)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355)
	at org.hibernate.loader.Loader.doList(Loader.java:2554)
	at org.hibernate.loader.Loader.doList(Loader.java:2540)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370)
	at org.hibernate.loader.Loader.list(Loader.java:2365)
	at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:353)
	at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1873)
	at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:311)
	at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:141)
	at org.hibernate.internal.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:966)
...

Я, насколько понимаю, не получается обработать ResultSet:

List<CreatedCardBean> list = qr.setResultTransformer(Transformers.aliasToBean(CreatedCardBean.class)).list();

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class CreatedCardBean {
        private int ReturnValue;
        private long prodID;

        public int getReturnValue() {
            return ReturnValue;
        }
        public void setReturnValue(int returnValue) {
            ReturnValue = returnValue;
        }
        public long getProdID() {
            return prodID;
        }
        public void setProdID(long prodID) {
            this.prodID = prodID;
        }
}
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate createQuery
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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