powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Взаимодействие с ORM
6 сообщений из 6, страница 1 из 1
Взаимодействие с ORM
    #38851390
Evgeniy_Aleksandrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте! Есть проблема.

Дано:
1. Есть модель @Entity ...
2. Конфигурационный фал: hibernate.cfg.xml
3. Класс HibernateUtil
4. На основании первых трех пунктов я могу получить результирующий список вот-так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
   public List<Contact> getContacts() {
        List<Contact> contacts = new ArrayList<Contact>();
        Transaction trns = null;
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            trns = session.beginTransaction();
            contacts = (List) session.createQuery("from Contact").list();
       ...



Проблема:
Как сделать тоже самое, но на основе EntityManager ? Вроде бы как-то проще должно быть?
Код: java
1.
2.
@PersistenceContext
private EntityManager em;
...
Рейтинг: 0 / 0
Взаимодействие с ORM
    #38851403
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Условно говоря, EntityManager это Session, только названия методов немного отличаются и иногда их поведение (тоже немного).

В чем конкретно проблема?
...
Рейтинг: 0 / 0
Взаимодействие с ORM
    #38851435
Evgeniy_Aleksandrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот к примеру метод, который должен возвращать список.

Код: java
1.
2.
3.
4.
5.
public List<Contact> findAllConts() {

        Query query = entityManager.createQuery("SELECT e FROM Contact");
        return (List<Contact>) query.getResultList();
    }



А как же мне в этом методе получить эту "сессию"... как нужно инициализировать entityManager ?
...
Рейтинг: 0 / 0
Взаимодействие с ORM
    #38851927
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeniy_Aleksandrovich,
А вверху твой код разве сложен?
Кому сложен и лень, те прыгают на спринг или делают обертку-утилиту.
...
Рейтинг: 0 / 0
Взаимодействие с ORM
    #38852500
Evgeniy_Aleksandrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне все-таки нужно с @PersistenceContext сделать! :)

Как сделать так, чтобы EntityManager em не был null ... Чего не хватает? (Если без спринг и т.д.)
Есть вот такой пример:

1. persistence.xml

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   <persistence-unit name="Store" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>jdbc/my_db</jta-data-source>   // glassfish
            <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.hbm2ddl.auto" value="create" />
        </properties>
    </persistence-unit>
</persistence>



2. public class ContactService

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@PersistenceContext (unitName = "Store")
    private EntityManager em;

    public List<ContactEntity> getAllContacts(){

        List <ContactEntity> list = new ArrayList<ContactEntity>();

        TypedQuery<Contact> query = em.createNamedQuery("Contacts.getAll",Contact.class);
        list = query.getResultList();

       return list;
    }
...
Рейтинг: 0 / 0
Взаимодействие с ORM
    #38852645
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeniy_Aleksandrovich,

CDI не хватает и JEE контейнера который его реализует.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Взаимодействие с ORM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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