【问题标题】:How to fetch data from a table from the result of same table in hibernate如何从休眠中同一表的结果中从表中获取数据
【发布时间】:2015-11-02 06:54:13
【问题描述】:

我正在使用带有 spring Rest 的 Hibernate,并且我正在从表中获取数据。我的表用户名和职业中有两列。我创建了一个方法,在该方法中我传递用户名并获取与用户名对应的职业现在我想按我得到的职业进行搜索,并希望获取所有具有该职业的用户名。

我已经使用用户名获取了专业,但我无法获取具有该专业的用户名,所以请建议我这样做的方法。

这是我的实体类Profession.java

@Entity
@Table(name="user_profession")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Profession implements Serializable {


private static final long serialVersionUID = 1L;


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

@Column(name="profession")
private String profession;

@Column(name="username")
private String username;


//Getters and setters

public long getId() {
    return id;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

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

public String getProfession() {
    return profession;
}

public void setProfession(String profession) {
    this.profession = profession;
}

}

这是我的DAO课程

@SuppressWarnings("unchecked")
public List<Profession> getProfessionById(String uname) throws Exception {
session = sessionFactory.openSession();
  session.beginTransaction();
  String queryString = "from Profession where username = :uname";
  Query query = session.createQuery(queryString);
  query.setString("uname", uname);
  //List<Profession> queryResult = (List<Profession>) query.uniqueResult();
  session.getTransaction().commit();
  return query.list();

}

请帮帮我。提前感谢

【问题讨论】:

  • 你的数据库表的名字到底是什么?职业还是用户职业?
  • user_profession ..Profession 是实体类名
  • 它有名为 id、username 和 professional 的列
  • 您遇到异常了吗?还是未获取简单数据?
  • @nad 你面临什么异常?

标签: java mysql hibernate rest spring-mvc


【解决方案1】:

您已添加此代码

 String queryString = "from Profession where username = :uname";
 Query query = session.createQuery(queryString);
 query.setString("uname", uname);

但是不见了

  List<Profession> professionList = query.list();
   for(Profession profession: professionList ){
     System.out.println("Get What you need Like"+profession.getUsername());
    }

【讨论】:

  • 实际上我正在获取用户的职业,但现在我想使用该职业来获取具有该职业的另一个结果
  • 我没有得到任何异常 bt 我不知道如何获得该专业的结果
  • 您必须使用forIterator 循环检查更新的答案
  • 抱歉,我不能,因为我没有 15 个声望。请 +1 我的问题
猜你喜欢
  • 1970-01-01
  • 2016-07-24
  • 2012-08-14
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多