2012-07-04 7 views
0

Я использую jpa (с реализацией Hibernate).Jpa (hibernate) return type

Каков наилучший способ определения типа возвращаемого запроса? Я хочу, чтобы числа возвращались по умолчанию как java.lang.Long (или oracle.jbo.number) - не как java.math.BigDecimal.

Большое спасибо.

+0

Не уверен, что я полностью понимаю ваш вопрос. Тип возвращаемого запроса, безусловно, будет определяться базовым HQL, выполняемым запросом. – JamesB

+0

+1, тип результата будет зависеть от заданного вами запроса. Что вы выбираете? Если это функция, то они могут быть известны на основе какой функции. Если свойство, тип результата совпадает с типом свойства. Но вам действительно нужно показать нам запрос. Если вы хотите увидеть тип результата программным способом, org.hibernate.Query.getReturnTypes() покажет вам, что (результаты являются экземплярами типа Hibernate) –

ответ

0

Если вы хотите долгое время, почему бы просто не привести результат к номеру и использовать .longValue() ???? Я предполагаю, что вы возвращаете объект (или массив объекта). Если вы не знаете, какой тип он вернет для кортежа или проекции, используйте иерархию классов, поскольку Long, Integer, Short, Double, Float, BigInteger и BigDecimal расширяют класс Number.

0

Отдайте свой результат с различными типами как вы любит, увидеть это

 long result= (Long)query.getSingleResult(); 
     or 
     BigDecimal result = (BigDecimal)query.getSingleResult(); 
     or 
     Object result = (Object)query.getSingleResult();