Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate createQuery / 10 сообщений из 10, страница 1 из 1
16.05.2015, 13:17
    #38960534
goldenhawk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
Ошибка
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
16.05.2015, 14:37
    #38960562
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
goldenhawk,

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

и зачем получать из базы список юзеров одним и тем же логином и паролем :-)
...
Рейтинг: 0 / 0
16.05.2015, 15:01
    #38960565
goldenhawk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
rema174,
Это логин и пароль при авторизации, тут проверяю есть ли такой в базе.
...
Рейтинг: 0 / 0
16.05.2015, 15:15
    #38960571
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
goldenhawk,
я имею ввиду что такой юзер если и будет в базе то только один
...
Рейтинг: 0 / 0
16.05.2015, 20:26
    #38960668
goldenhawk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
rema174,
как транзакцию открыть? @Transactional перед методом?
...
Рейтинг: 0 / 0
17.05.2015, 09:49
    #38960754
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
Transaction tx = null;
Session session = HibernateUtil.getSessionFactory().openSession();
tx = session.beginTransaction();
...
tx.commit();
...
Рейтинг: 0 / 0
05.10.2015, 16:43
    #39068637
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
Всем привет. Помогите разобраться...
Пробую вызвать хранимую процедуру 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
05.10.2015, 18:46
    #39068724
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
May12Я пытаюсь это сделать так:
ну дак и попытайся. Дольше будешь спрашивать.
Вчера был вопрос про хранимки.
Ну, то что у тебя 2 выходных тебе аукнется не раз. Зачем было так писать?
Это не масштабируемо.
...
Рейтинг: 0 / 0
06.10.2015, 14:40
    #39069455
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
Petro123, спасибо за идею. Попробую сделать один. Это же нормально?
...
Рейтинг: 0 / 0
06.10.2015, 17:48
    #39069711
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate createQuery
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
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate createQuery / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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