我正在使用Java 1.7和Hibernate 4.1.9。我对Hibernate来说还比较陌生,因此,如果我遗漏了任何关键信息,请告诉我。我的班级中有一个javax.persistence.Entity
,它包含以下内容:
@Column(name = "ballot_id")
private Long ballotId;
public Long getBallotId() {
return ballotId;
}
public void setBallotId(Long ballotId) {
this.ballotId = ballotId;
}
我正在尝试构造这样的查询:
Query query = session.createQuery("from Meeting m where m.ballotId=:ballotId");
query.setParameter("ballotId", someLongValue);
meeting = (Meeting) query.uniqueResult();
但是我收到一个
Meeting
错误。似乎在构建这样的查询时,Hibernate不会检查表示数据库列名称与对象的属性名称不同的注释。有另一种方法可以执行此操作,还是需要为此添加一些内容?也许我错过了一些东西,还是HQL弄错了?谢谢!
最佳答案
看起来更像您需要移动注释:
private Long ballotId;
@Column(name = "ballot_id")
public Long getBallotId() {
return ballotId;
}
public void setBallotId(Long ballotId) {
this.ballotId = ballotId;
}
根据此answer,您的HQL应该没问题。