Проблема выполнения запроса с использованием Spring и HIbernate вместе с FLEX - PullRequest
0 голосов
/ 05 ноября 2010

Так что я собираюсь использовать Flex 4 с Spring и Hibernate. Все настроено и работает. Я знаю это, поскольку могу выполнять простые запросы, например перечислять все значения в таблице. Проблема в том, что когда я пытаюсь выполнить запрос «выбор», я получаю все значения, как я получал раньше, а не определенные атрибуты с помощью запроса «Выбор».

Я новичок, так что будьте добры, не обращайте внимания на мое отсутствие более технически правильных слов ... но я не использую их, потому что не хочу ошибочно цитировать.

Ниже приведен код, который поможет вам лучше понять вещи: Этот класс используется для хранения данных, поступающих из базы данных MySQL -

package flex;


import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;



@Entity
@Table(name="intrial1")
public class intrial1 implements Serializable {

    @Id @GeneratedValue
    @Column( name = "id")
    private int id;
    @Column( name = "name")
    private String name;



    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    }

Это класс, где sessionFactory что-то делает (слишком много операторов import, просто чтобы заставить вещи работать - игнорировать) -

package flex;

import java.util.ArrayList;
import java.util.List;


import javax.persistence.Query;
import org.hibernate.SessionFactory;
import org.hibernate.annotations.NamedNativeQueries;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.flex.remoting.RemotingDestination;
import org.springframework.flex.remoting.RemotingInclude;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;



import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import org.springframework.transaction.annotation.Transactional;




@Repository
@RemotingDestination
public class SpringBean_Service  {


    private SessionFactory sessionFactory;

    @Autowired
    public void setSessionFactory(SessionFactory factory) {
        sessionFactory = factory;
    }

    @SuppressWarnings("unchecked")
    @RemotingInclude
    @Transactional
    public List<intrial1> getList() {

        return sessionFactory.getCurrentSession().createQuery("from intrial1 ").list();
    }

    @SuppressWarnings("unchecked")
    @RemotingInclude
    @Transactional
    public List<intrial1> getListAgain() {



        org.hibernate.Query q = sessionFactory.getCurrentSession().createQuery("select id from intrial1 where name='chirayu'");
        List l = q.list();
        return l; 


    }


    @RemotingInclude
    @Transactional
    public void createFriend(String name, int id) {
        intrial1 f = new intrial1();
        f.setName(name);
        f.setId(id);
        sessionFactory.getCurrentSession().save(f);

}
}

В вышеприведенном классе getList () работает отлично, перечисляет все значения. createFriend используется для ввода значений Идентификатор + имя, и работает гладко. проблема с getListAgain () функция, это дает мне результат, представьте 2 колонки, имеющие заголовок 'id' и 'name', но перечисляет значения идентификатора в обоих столбцах (без имен), как вы могу понять, я ищу результат функции getListAgain () как - «1 столбец с заголовком« id »и список идентификаторов везде, где имя = 'Chirayu'».

Пожалуйста, помогите, мне нужно будет это прояснить и продолжить разработку. Спасибо.

С уважением, Chirayu

ПРИМЕЧАНИЕ ОБНОВЛЕНИЯ: Хотел бы сказать одну вещь здесь, если только я сделаю класс, как показано ниже, который идентичен intrial1 class , но имеет нет оператора возврата для имени, то есть не определено getName () , я получил правильный результат для запроса -

'выберите идентификатор из intrial1, где имя = 'chirayu' '

package flex;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;



@Entity

public class intrial2 {

    @Id @GeneratedValue
    @Column( name = "id")
    private int id;
    @Column( name = "name")
    private String name;




    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }


    public void setName(String name) {
        this.name = name;
    }

    }

Это странно или должно быть так. Все еще ищу ответы.

1 Ответ

1 голос
/ 05 ноября 2010

Запрос

select id from intrial1 where name='chirayu'

не возвращает сущность intrial1, поэтому вы должны изменить тип возвращаемого значения на List или просто изменить свой запрос на:

from intrial1 where name='chirayu'
...