извлекать данные из более чем двух таблиц, используя hibernateTemplate - PullRequest
0 голосов
/ 12 декабря 2011

Я новичок в среде Spring, Hibernate. У меня есть две таблицы t1, t2, также имеющие два объекта POJO для t1 и t2. Мне нужно получить все данные из двух таблиц, используя шаблон Hibernate. Пожалуйста, дайте ответ. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Если вы правильно настроили hbm files / annotated pojo и Spring, вы можете подать SQL-запрос, используя session.createSQLQuery (sqlQuery) для выбора данных из обеих таблиц (если вы хотите сделать это сразу). В результате вы получите объект [], который вы можете использовать. В противном случае вы можете запускать отдельные запросы, как рекомендует subodh.

проверьте здесь для справки.

        return this.getHibernateTemplate().execute(new HibernateCallback<List>() {

        @Override
        public List doInHibernate(Session session) throws HibernateException, SQLException {

            String sqlQuery = "yourQueryHere";
            SQLQuery query = session.createSQLQuery(sqlQuery);
            List lstData = query.list();

            for (Object row : lstData) {
                Object[] recordArray = (Object[]) row;
                //recordArray[1] , recordArray[2] will give the columns

            }



        }
    });

или вместо обратного вызова вы можете использовать

this.getHibernateTemplate().getSessionFactory().getCurrentSession() 

чтобы получить объект сеанса. Обратите внимание, что начиная с Spring 3.0 использование спящего шаблона не рекомендуется. Вы можете просто внедрить sessionFactory, получить сессию и использовать ее.

1 голос
/ 12 декабря 2011

Назовите это:

protected List findAll(Class clazz) {
    return getHibernateTemplate().find("from " + clazz.getName());
}

Эта функция вернет вам список объектов.

updated:

String hql="SELECT T.* FROM TEST T, STUDENT S WHERE S.DNO=? AND S.CLASS_ID=T.CLS_ID AND T.STATUS='A' AND T.BATCH=S.BATCH AND T.SHIFT=S.SHIFT";
List list = getHibernateTemplate.find(hql,"condition");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...