powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как лучше реализовать метод GetIDbyName()
21 сообщений из 21, страница 1 из 1
как лучше реализовать метод GetIDbyName()
    #37092327
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет

NetBeans IDE 6.9
JavaEE6
Java Development Kit (JDK) version 6
GlassFish server - Open Source Edition 3.0.1


SessionBean

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Stateless
 public   class  RefdevicebrandManager {
    @PersistenceContext(unitName = "ITSPU")
     private  EntityManager em;
     public  List GetBrandIDbyName(String brandName)
    {
         return  em.createNamedQuery("Trefdevicebrand.findByBrandname").setParameter("brandname", brandName).getResultList();
    }

}

servlet

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 import  entity.Trefdevicebrand;
...
    @EJB
     private  RefdevicebrandManager refdevicebrandManager;
...
                String brandname = request.getParameter("brandname");
                 int  brandid;
                 if  (!refdevicebrandManager.GetBrandIDbyName(brandname).isEmpty()){
                    Trefdevicebrand v = (Trefdevicebrand) refdevicebrandManager.GetBrandIDbyName(brandname).get( 0 );
                    brandid = v.getBrandid();
                }  else  {brandid =  0 ;}
                req.setAttribute("brandid", brandid);
...

как переделать код, чтобы
Код: plaintext
 public  List GetBrandIDbyName(String brandName)
возвращал не List а сразу int brandid ?
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37092344
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя Trefdevicebrand.findByBrandname возвращает уникальную строку, но кроме List не смог придумать )))
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37092394
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37092534
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ruslan.Isbarov getSingleResult() ?
спасибо!
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37092782
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вариант

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 package  EJB;
 import  entity.Trefatmbrand;
...
@Stateless
 public   class  RefdevicebrandManager {
    @PersistenceContext(unitName = "ITSPU")
     private  EntityManager em;
     public   int  GetBrandIDbyName(String brandName)
    {
         int  brandid;
        List brandList = em.createNamedQuery("Trefdevicebrand.findByBrandname").setParameter("brandname", brandName).getResultList();
         if  (!brandList.isEmpty()){
                Trefdevicebrand b = (Trefdevicebrand) brandList.get( 0 );
                brandid = b.getBrandid();
        }  else  {brandid = - 1 ;}
         return  brandid;
    }
}
...

но меня смущает Trefdevicebrand b = (Trefdevicebrand) brandList.get(0); и List
использовать getSingleResult() так и не смог
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37092799
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Baur , почему не смогли? Поясните, плз, дабы не было недопонимания, что именно Вас смущает в приведенных Вами строках?

Код: plaintext
1.
Trefdevicebrand b = (Trefdevicebrand) em.createNamedQuery("Trefdevicebrand.findByBrandname").setParameter("brandname", brandName).getSingleResult();

Как то так...
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37092853
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ruslan.Isbarov Baur , Вас смущает в приведенных Вами строках?
зачем использовать List кода я точно знаю, что ResultSet возвращает уникальную строку

Ruslan.Isbarov Baur ,
почему не смогли?


потому что Trefdevicebrand.findByBrandname возвращает те только brandId возвращается и brandName

как мне получить значение brandId или brandName
или можно b.brandId или b.brandName
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37092898
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Baur , Вы используете технологию Java Persistence API и работаете не с реляционной моделью, а с объектной.

getSingleResult() возвращает Вам ссылку на объект класса Trefdevicebrand . Чего использовать в качестве возвращаемого значения метода GetBrandIDbyName() - ИД b.brandId или имя b.brandName (или вообще весь объект класса - b ) - решать уже Вам.

getResultList() используется в том случае, если результатом выборки будет несколько строк (в данном случае объектов).

Но если же Вы хотите получить только значение конкретного столбца - тогда нужно смотреть в сторону Native Queries - " SELECT NAME FROM ... WHERE brandname = что_то_там ". Не думаю, что это Вам надо. Поэтому, берите всю информацию из извлеченного объекта.
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37092910
and)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но учтите что, если объект не будет найден getSingleResult выбрасывает исключение
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37092920
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
and) , да-да... Также стоит учесть, что если результат выборки будет > 1, также будет выброшено исключение. Кто знает, может brandName - не уникален.
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37093055
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, код переписал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
     public   int  GetBrandIDbyName(String brandName)
    {
         int  brandid;
         try  {
        Trefdevicebrand b = (Trefdevicebrand) em.createNamedQuery("Trefdevicebrand.findByBrandname").setParameter("brandname", brandName).getSingleResult();
        brandid = b.getBrandid();
        }  catch  (Exception e)
        {
            brandid = - 1 ;
        };
         return  brandid;
    }

Ruslan.Isbarov and) , да-да... Также стоит учесть, что если результат выборки будет > 1, также будет выброшено исключение. Кто знает, может brandName - не уникален.

а как отловить ошибку и записать в сервер лог GlassFish или хотя бы в output IDE?
действительно, я бы не хотел чтобы ошибка тихо-молча прошел мимо
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37093110
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не надо использовать локальный
Код: plaintext
 int  brandid;
это мерзко
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37093140
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grasoff.netне надо использовать локальный
Код: plaintext
 int  brandid;
это мерзко

да, вижу )))

сразу писал
Код: plaintext
1.
2.
3.
4.
5.
6.
         try  {
        Trefatmbrand b = (Trefatmbrand) em.createNamedQuery("Trefatmbrand.findByBrandname").setParameter("brandname", brandName).getSingleResult();
         return  b.getBrandid();
        }  catch  (Exception e)
        {
             return  - 1 ;
        };

но компилятор ругался на empty statement
думал переписать когда определюсь с кодом catch e.getMessage()

пока никак не могу записать e.getMessage() в GlassFish log
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37093166
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grasoff.netне надо использовать локальный
Код: plaintext
 int  brandid;
это мерзко

почему компилятор не принимает
Код: plaintext
1.
2.
3.
4.
5.
6.
 try  {
        Trefatmbrand b = (Trefatmbrand) em.createNamedQuery("Trefatmbrand.findByBrandname").setParameter("brandname", brandName).getSingleResult();
         return  b.getBrandid();
        }  catch  (Exception e)
        {
             return  - 1 ;
        };

?
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37093211
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что именно говорит Вам компилятор? Ошибку в студию...
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37093247
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ruslan.IsbarovЧто именно говорит Вам компилятор? Ошибку в студию...

error.jpg ну как бы можно supress сделать (игнорировать) но все таки ...

Ruslan.Isbarov, как можно логировать exception в GlassFish server log?

Код: plaintext
1.
2.
3.
}  catch  (Exception e)
        {   //e.getMessage()
             return  - 1 ;
        };
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37093276
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уберите нафиг точку с запятой после try-catch :

Код: plaintext
1.
2.
3.
4.
5.
 try  {
     return  ...
}  catch  (...) {
     return  ...
};

Это недостижимый код.
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37093286
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BaurRuslan.Isbarov, как можно логировать exception в GlassFish server log?
Либо использовать логгер, либо System.out.println("Error msg: " + e.getMessage()). И смотрите лог домена GLASSFISH_HOME/domains/domainXXX/logs/server.log.
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37093342
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ruslan.IsbarovУберите нафиг точку с запятой после try-catch :

Код: plaintext
1.
2.
3.
4.
5.
 try  {
     return  ...
}  catch  (...) {
     return  ...
};

Это недостижимый код.

Ruslan.IsbarovЛибо использовать логгер, либо System.out.println("Error msg: " + e.getMessage()). И смотрите лог домена GLASSFISH_HOME/domains/domainXXX/logs/server.log.




:D

Спасибо!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как лучше реализовать метод GetIDbyName()
    #37692487
devalentino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ruslan.IsbarovBaurRuslan.Isbarov, как можно логировать exception в GlassFish server log?
Либо использовать логгер, либо System.out.println("Error msg: " + e.getMessage()). И смотрите лог домена GLASSFISH_HOME/domains/domainXXX/logs/server.log.

Подскажите пожалуйста, как настроить Glassfish так чтобы System.out.println() работал в любом "классе". У меня только в ManagedBean-ах и PhaseListener-ах out в system.log перенаправляется
...
Рейтинг: 0 / 0
как лучше реализовать метод GetIDbyName()
    #37693133
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devalentinoRuslan.Isbarovпропущено...

Либо использовать логгер, либо System.out.println("Error msg: " + e.getMessage()). И смотрите лог домена GLASSFISH_HOME/domains/domainXXX/logs/server.log.

Подскажите пожалуйста, как настроить Glassfish так чтобы System.out.println() работал в любом "классе". У меня только в ManagedBean-ах и PhaseListener-ах out в system.log перенаправляется
Использовать slf4j+logback и на всю жизнь забыть про system.out.println в промышленных приложениях.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / как лучше реализовать метод GetIDbyName()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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