【发布时间】:2010-11-05 15:17:00
【问题描述】:
所以我将使用带有 Spring 和 Hibernate 的 Flex 4。 一切都已配置并正常工作。我知道这一点,因为我可以进行简单的查询,例如列出表中的所有值。 问题是当我尝试执行“选择”查询时,我会像以前一样获得所有值,而不是通过选择查询获得特定属性。
我是一个初学者,所以请忽略我缺乏更多技术上合理的词..但我不使用它们,因为我不想错误引用。
以下是一些可以让您更好地理解事物的代码: 这是用于存储来自 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 做事的类(导入语句太多,只是为了让事情工作-忽略)--
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 用于输入值 id + name,并且工作顺利。这 问题出在 getListAgain() 函数,它给了我一个结果, 想象2列,标题为 'id' 和 'name',但列出 id 值 在两列中(无名称),如你 可以理解,我在找 getListAgain() 函数的结果为 - “1 列的标题为 'id',并且 在名称的任何地方列出 id ='chirayu'"。
请提供帮助,因为我需要清除此问题并继续开发。 谢谢。
问候, 千汤
更新说明:在这里想说一件事,只要我做一个如下的类,它与 intrial1 类相同,但没有名称的返回语句,即没有定义 getName(),我得到了正确的查询结果 -
'从intrial1中选择id name='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;
}
}
这是奇怪的还是应该是这样的。仍在寻找答案。
【问题讨论】:
标签: apache-flex hibernate spring orm persistence