powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
47 сообщений из 47, показаны все 2 страниц
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070265
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, мое положение заставляет обратиться к вам за помощью в отдельной теме (после поиска решения в интернете и на sql.ru в частности).

Затея: вызвать MS SQL 2008 процедуру с помощью Hibernate 4 и вывести (обработать) два возвращаемых ей значения на экран.

Процедура:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE PROCEDURE [dbo].[PRODUCT_CREATE](
        @ReturnValue INT output,
        @ProductID INT output,
        @PassID numeric(18,0),
        @Amount numeric(18,2))
  as
BEGIN
print 'PassID = ' + convert(varchar,  @PassID);
print 'Amount  = ' + convert(varchar, @Amount);
select @ReturnValue     = 999999,
       @ProductID       = 777777;
END; 




Mapping:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
    PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <sql-query name="PRODUCT_CREATE" callable="true">
        <return-scalar column = "ReturnValue" type="int"/>
        <return-scalar column = "ProductID" type="int"/>
        <![CDATA[{CALL PRODUCT_CREATE (:ReturnValue, 
                                            :ProductID, 
                                            :PassID, 
                                            :Amount 
                                            )}]]>
  </sql-query>
</hibernate-mapping>




Main class:

Код: 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.
package app;

import java.math.BigInteger;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;

public class App {
	
	
	public static void main(String[] args) {
		
		App.createProduct();
			
		
		}
	

	
	public static BigInteger createProduct()
	{
		/**
		 * Open session and begin database transaction for database operation.
		 */
		SessionFactory sf =  HibernateUtil.createSessionFactory();
		Session session = sf.openSession();
		Query  qr = session.getNamedQuery("PRODUCT_CREATE");

		qr.setParameter("ReturnValue", 0); 
		qr.setParameter("ProductID", 0);
		qr.setParameter("PassID", new BigInteger("1000999"));
		qr.setParameter("Amount", new BigInteger("1000001"));

		@SuppressWarnings("unchecked")
         /*Вот тут возникает ошибка*/
		List<ProductModel> list = qr.setResultTransformer(Transformers.aliasToBean(ProductModel.class)).list(); 

		for(int i=0; i<list.size(); i++){
			ProductModel prd = (ProductModel)list.get(i);
		System.out.println(String.valueOf(prd.getCardId()));
		}

		session.getTransaction().commit();
		session.close();

		return null;

	}


}



Установка соединения:

Код: 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.
package app;

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class HibernateUtil {
	private static SessionFactory sessionFactory;
	private static ServiceRegistry serviceRegistry;
	
	
	/**
	 * Create hibernate configuration.
	 */
	Configuration c = new Configuration().configure("/resources/hibernate.cfg.xml");
	
	
	public static SessionFactory createSessionFactory() {
	
		try
		{
		Configuration configuration = new Configuration();
	    configuration.configure();
	    serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
	            configuration.getProperties()).build();
	    sessionFactory = configuration.buildSessionFactory(serviceRegistry);
	    return sessionFactory;
	    
		} catch (Throwable ex) {
			// Make sure you log the exception, as it might be swallowed
			System.out.print("Initial SessionFactory creation failed." + ex);
			throw new ExceptionInInitializerError(ex);
		}
	}
	
}




Модель возвращаемого объекта:

Код: 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.
package app;

public class ProductModel {
	
	private int ReturnValue;
	private int ProductID;
	
	
	public ProductModel(int returnValue, int productID) {
		super();
		ReturnValue = returnValue;
		ProductID = productID;
	}


	public int getReturnValue() {
		return ReturnValue;
	}


	public void setReturnValue(int returnValue) {
		ReturnValue = returnValue;
	}


	public int getProductID() {
		return ProductID;
	}


	public void setProductID(int productID) {
		ProductID = productID;
	}

}




Hibernate конфиг:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
    <property name="connection.url">jdbc:sqlserver://.......</property>
    <property name="connection.username">user</property>
    <property name="connection.password">pass</property>
    <property name="connection.pool_size">10</property>
    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
    <property name="show_sql">true</property>
    <property name="hibernate.connection.autocommit">true</property>
    <!--<property name="current_session_context_class">thread</property> -->

    <mapping resource="app/PRODUCT_CREATE.hbm.xml"></mapping>
    
  </session-factory>
</hibernate-configuration>



POM:
Код: xml
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.
<properties>
	    <java.version>1.8</java.version>
        <jdk.version>1.8</jdk.version>
        <hibernate.version>4.3.8.Final</hibernate.version>
        <hibernate.jpa.version>1.0.0.Final</hibernate.jpa.version>
	</properties>

 <dependencies>
 
  <!--Hibernate-->
            <dependency>
                <groupId>org.hibernate.javax.persistence</groupId>
                <artifactId>hibernate-jpa-2.1-api</artifactId>
                <version>${hibernate.jpa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
   
   
   <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
   </dependency>
    </dependencies>





При выполнении программы возникает ошибка:
Код: 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 app.App.createProduct(App.java:46)
	at app.App.main(App.java:16)

Помогите ее исправить и вывести в консоль два возвращаемых процедурой параметра?
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070343
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,

RTFM:
http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch13.html#sp_query Hibernate provides support for queries via stored procedures and functions. Most of the following documentation is equivalent for both. The stored procedure/function must return a resultset as the first out-parameter to be able to work with Hibernate.
...
13.2.2.1. Rules/limitations for using stored procedures
...


Хранимка должна возвращать ResultSet, а не просто значения через OUT параметры.
Если нужны просто значения, то можно вытащить Connection из сессии и запускать хранимку через JDBC API
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070412
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, спасибо.
Т.е. мне каким-то образом нужно сделать так чтобы процедура возвращала курсор? Не очень представляю как это в MS SQL. Пойду искать.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070527
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Blazkowicz, спасибо.
Т.е. мне каким-то образом нужно сделать так чтобы процедура возвращала курсор? Не очень представляю как это в MS SQL. Пойду искать.

Что там искать??
https://www.google.com/search?q=t-sql return results from stored procedure
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070534
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

я извиняюсь, но мне не удалось найти пример ms sql процедуры которая возвращает курсор.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070549
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все как - то предлагают получать result set через временные таблицы.

Blazkowicz, если бы процедура возвращала один единственные параметр, это упростило бы задачу или все равно нужно возвращать резалтсет?
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070554
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,

Перестаньте использовать термин ms sql
Сервер называется SQL Server. Используемый им диалект SQL называется T-SQL.
Ссылку с примерами привел выше.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070587
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, да, извините, конечно transact sql.
Еще раз спасибо за линк на результаты поиска, но повторюсь, не увидела примера, где процедура возвращает курсор. Курсор - это в данному случае result set. Не было бы ветки , если бы для меня было бы все очевидно, как, наверное, для Вас.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070598
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Blazkowicz, да, извините, конечно transact sql.
Еще раз спасибо за линк на результаты поиска, но повторюсь, не увидела примера, где процедура возвращает курсор. Курсор - это в данному случае result set. Не было бы ветки , если бы для меня было бы все очевидно, как, наверное, для Вас.
Ну, если в лоб, то да, скорее всего через временную таблицу.
Но подойдите с другой стороны к проблеме
- Обязательно ли вызывать через Hibernate API, а не JDBC?
- Обязательно ли это должна быть "хранимка", а не например, "вьюха"?
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070615
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, к сожалению - да, хотелось бы через Hibernate API.

Вот, нашелся пример, когда процедура возвращает курсор:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
USE AdventureWorks2012;
GO
IF OBJECT_ID ( 'dbo.uspCurrencyCursor', 'P' ) IS NOT NULL
    DROP PROCEDURE dbo.uspCurrencyCursor;
GO
CREATE PROCEDURE dbo.uspCurrencyCursor 
    @CurrencyCursor CURSOR VARYING OUTPUT
AS
    SET NOCOUNT ON;
    SET @CurrencyCursor = CURSOR
    FORWARD_ONLY STATIC FOR
      SELECT CurrencyCode, Name
      FROM Sales.Currency;
    OPEN @CurrencyCursor;
GO




Попробую.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070655
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, не получается. эх....
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070742
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12, буду пробовать с одной возвращаемое переменной.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070768
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12May12, буду пробовать с одной возвращаемое переменной.
Что это меняет?
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070787
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, поняла, что по ничего.
Прихожу к выводу что Hibernate не может работать с t-sql процедурами возвращающими значения.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070801
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Blazkowicz, поняла, что по ничего.
Прихожу к выводу что Hibernate не может работать с t-sql процедурами возвращающими значения.
цель тестировать хибер или вернуть коллекцию объектов их хранимки?
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070811
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, здравствуйте. Уже не тестирование; вернуть коллекцию объектов их хранимки Хибером . Ну если это невозможно, то я забью. Просто время потрачено, хотелось бы доделать и думалось что это некая тривиальная задача для этого фреймворка в виду его разракламированности.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070846
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12то я забью.
забивай)
Он не для тебя)
Вишь в первой мессаге ты 1000 строк понаписал.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070860
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, ну Вы то знаете как получить результат в данном случае?
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070869
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Petro123, ну Вы то знаете как получить результат в данном случае?
абстрактные задачи решают философы.
Хибер решает CRUD.
Там другой маппинг.
Он в этом хороший))
А ты блонинку используешь как брюнетку).
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070872
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123А ты блонинку используешь как брюнетку).
У меня есть серьезные подозрения, что May12 - дама. Поэтому не самая удачная аллегория.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070877
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. через callable statement JDBC API делать...
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070880
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Уже не тестирование; вернуть коллекцию объектов их хранимки Хибером .
Если хранимка сама не возвращает коллекцию, то при чем тут хибер? Его бага только в том что он NPE выкидывает, когда следовало бы иметь более внятное исключение.

May12Ну если это невозможно, то я забью.
Просто время потрачено, хотелось бы доделать и думалось что это некая тривиальная задача для этого фреймворка в виду его разракламированности.
Это называется "вам шашечки или ехать"? Верните выборку из временной таблицы и будет вам счастье. Вы же сами говорите о какой-то коллекции, которой у вас в БД и нет совсем.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070930
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПоэтому не самая удачная аллегория.
да да)))
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39070933
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12т.е. через callable statement JDBC API делать...
пока вы тренируетесть и скучаете, решений полно:
- т.к. хранимки, то для них есть полуХибер - iBatis.
- хибер стандартно работает с таблицами, а не с их фасадом - хранимками.
- можно без хибера но вам не нравится
как то так...
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071146
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ваще хибер лишний, без него проще - всё по контролем.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071182
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, не понимаю почему он настолько популярен.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071188
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12вадя, не понимаю почему он настолько популярен.

Наверное потому что его используют по назначению
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071202
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никMay12вадя, не понимаю почему он настолько популярен.

Наверное потому что его используют по назначению
мои наблядения говорят мне , что популярность хибера в том, что его использующие считают он облегчает общение с базой,
хотя это ещё одно звено , требуещее знаний о себе, в дополнение . и они считпют, что он избавляет их от знаний о базах.
для меня сделать запрос/хранимку и обработать полученное не проблема, и зачем использовать ещё что-то не понятно.
это моё мнение и на абсолютность я не претендую...
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071244
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как подтверждение :) 18249374
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071278
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
вот смотри.
Есть автомобили (jdbc...), а есть корабли и пароходы (ORM).
Ты говоришь, что автомобиль лучше парохода, а следовательно ОРМ как класс продуктов вообще не нужен.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071369
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
твоё сравнение здесь не подходит,
хибер это промежуточное звено между основным кодом и базой данных.
если переходить к аналогиям -jdbc это конвейер между двух цехов предприятия, а хибер - это как если воспользоваться почтой России для этих же целей.
в приведенном примере топика - тс оперирует терминами не на языке баз, на на какомто суррогате, и видно,что он не до конца понимает работу, принцип баз данных. и ответ - можно создать третью, таблицу, а можно и нет - кто-то её создаст и как-то всё соединит
но возникакт вопрос - что в итоге получится?
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071370
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-jdbc это конвейер между двух цехов предприятия
тточнее будет
-jdbc это конвейер между цехом и складом на одном предприятии
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071421
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадямои наблядения говорят мне , что популярность хибера в том, что его использующие считают он облегчает общение с базой,
хотя это ещё одно звено , требуещее знаний о себе, в дополнение . и они считпют, что он избавляет их от знаний о базах.
для меня сделать запрос/хранимку и обработать полученное не проблема, и зачем использовать ещё что-то не понятно.
это моё мнение и на абсолютность я не претендую...

Ну в редких случаях действительно облегчает...
Например Hibernate JPA + Spring Data позволяет быстро написать простое CRUD приложение.

А так удобнее Spring JdbcTemplate.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071443
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
В части ТС я с тобой согласен.
Ну дак, женская логика особый предмет).
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071517
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Вынужден с вами не согласится. У меня есть пара простых web приложений. Решил, а попробую-ка обойтись без хибера. И знаете что? Ну его ф топку такое удовольствие. 5 несчастных таблиц, а возни выходит выше крыши. Лучше было взять ORM.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071775
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczвадя,

Вынужден с вами не согласится. У меня есть пара простых web приложений. Решил, а попробую-ка обойтись без хибера. И знаете что? Ну его ф топку такое удовольствие. 5 несчастных таблиц, а возни выходит выше крыши. Лучше было взять ORM.

С точностью до наоборот.
Была пара проектов, где в начале пытался применять хибер, потом "ну его нафиг" и делали все ч/з Spring JdbcTemplate.

Но парочку сделал ч/з Hibernate и Spring-Data.
Удобно, но область применения сильно ограничена.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071884
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczвадя,

Вынужден с вами не согласится. У меня есть пара простых web приложений. Решил, а попробую-ка обойтись без хибера. И знаете что? Ну его ф топку такое удовольствие. 5 несчастных таблиц, а возни выходит выше крыши. Лучше было взять ORM.
ну на это я могу сказать : на вкус и цвет - фломастеры разные...
я полностью перешёл на использование хранимок, даже простейший селект оборачиваю в хранимку, для кого-то это покажется странным, но я так делаю...
и для меня прсто полученный из jdbc рекордсет распихть куда надо, чем городить ещё что-то....
к примеру для такого хибер даже вреден
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
try (Connection con = DriverManager.getConnection(Singleton.getBase(), Singleton.getBase_login(), Singleton.getBase_password());
                CallableStatement proc = con.prepareCall("{call xxxx(" + param + ")}");) {
            rs = proc.executeQuery();
            rs.next();
            webSocket_.send("yyy42|" + rs.getString("price") + "," + rs.getString("sum"));
        } catch (SQLException ex) {
            Logger.getLogger(SSLServer.class.getName()).log(Level.SEVERE, null, ex);
        }
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071924
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпростейший селект оборачиваю в хранимку
Т.е.
Код: java
1.
2.
3.
4.
create
update
delete
insert 


у тебя 4 хранимки.
А у ОРМ только маппинг)
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39071944
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяпростейший селект оборачиваю в хранимку
Т.е.
Код: java
1.
2.
3.
4.
create
update
delete
insert 


у тебя 4 хранимки.
А у ОРМ только маппинг)
процент таких хранимок очень и очень мал.
и у меня всё под моим контролем, а это не малое преимущество.
и всё решено в одном стиле.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39072042
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
ты прям как фанатик. У тебя без webSocket_.send. приложения есть?
Вопрос риторический.
Удачи!
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39072109
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C помощью Spring SimpleJdbcCall проблема решилась.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39072132
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
ты прям как фанатик. У тебя без webSocket_.send. приложения есть?
Вопрос риторический.
Удачи!
да я фанат этой технологии. в своё время я настрадался от постоянных запросов на сервер, jax-ws, ajax...
счас я просто млею от открывшихся возможностей :)
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39072691
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczвадя,

Вынужден с вами не согласится. У меня есть пара простых web приложений. Решил, а попробую-ка обойтись без хибера. И знаете что? Ну его ф топку такое удовольствие. 5 несчастных таблиц, а возни выходит выше крыши. Лучше было взять ORM.

Мне jooq понравился гораздо больше. И синтаксис на SQL похож гораздо больше, чем criteria query, и не "умничает" слишком, и если что, можно на чистый SQL в нужных местах перейти, и в тоже время CRUD операции из коробки.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39072709
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк Мне jooq понравился гораздо больше. И синтаксис на SQL похож гораздо больше, чем criteria query, и не "умничает" слишком, и если что, можно на чистый SQL в нужных местах перейти, и в тоже время CRUD операции из коробки.
Jooq не плох, но кода очень много выходит. И у него есть ограничения в лизенции. В том числе и для SQL Server. QueryDSL аналогичен, но API не на столько красив.
А ещё plain old SQL, IDEA, например во время редактирования валидирует. Тоже удобно. Хотя и противоречит древнему принципу не писать SQL в Java коде.
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39072849
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczА ещё plain old SQL, IDEA, например во время редактирования валидирует. Тоже удобно. Хотя и противоречит древнему принципу не писать SQL в Java коде.

А зачем в коде?!
Все SQL запросы выносить в бандлы!
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39072856
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulА зачем в коде?!
Все SQL запросы выносить в бандлы!
Idea удобно валидирует JDBC параметры и сам SQL
...
Рейтинг: 0 / 0
Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
    #39072915
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczmad_nazgulА зачем в коде?!
Все SQL запросы выносить в бандлы!
Idea удобно валидирует JDBC параметры и сам SQL

Ну, вообще-то предпочитаю использовать именованные параметры.
Так и запросы проще писать и параметры передавать :-)

Обычно запросы "конструируются", поэтому валидация не особо помогает. :-)
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов MS SQL хранимой процедуры с двумя исходящими параметрами из Hibernate 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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