vo:model使用@Entity 、字段使用@Column
@Entity
public class NewsVo implements Serializable{
private String id;
private String caption;
private String subcaption;
private Date beginDate;
@Id
@Column(name="ID")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Column(name="CAPTION")
public String getCaption() {
return caption;
}
...
baseDao
public List<T> findSql(Class<T> clazz, String sql, Map<String, Object> params) {
SQLQuery q = this.getCurrentSession().createSQLQuery(sql).addEntity(clazz);
if (params != null && !params.isEmpty()) {
for (String key : params.keySet()) {
q.setParameter(key, params.get(key));
}
}
return q.list();
}
Service:
public List<HyMeetingVo> findMeetingByUnitAndSubmitState(
String unitId, String submitState) {
String sql =
"select\n" +
"a.id,\n" +
"a.caption,\n" +
"b.subcaption,\n" +
"b.abstraction\n" +
"from t1 a\n" +
"left join t2 b on b.sid = a.id\n" +
"where a.status = :status\n" +
"and a.publish_flag = :publishFlag\n" +
"and b.status = :status\n" +
"order by a.publish_time desc, a.id";
Map<String, Object> params = new HashMap<String, Object>();
params.put("status", "1");
params.put("publishFlag", "1");
return dao.findSql(HyMeetingVo.class, sql, params);