第三 在dao增加public List findByIds( SkillTableKey key)<o:p></o:p>
通过SkillTableKey 作为 papm获取<o:p></o:p>
package com.sunnyever.dao;<o:p></o:p>
<o:p> </o:p>
import java.util.List;<o:p></o:p>
<o:p> </o:p>
import com.sunnyever.dao.Dao;<o:p></o:p>
import com.sunnyever.model.SkillTable;<o:p></o:p>
import com.sunnyever.model.SkillTableKey;<o:p></o:p>
<o:p> </o:p>
public interface SkillTableDao extends Dao {<o:p></o:p>
<o:p> </o:p>
/**<o:p></o:p>
* Retrieves all of the skillTables<o:p></o:p>
*/<o:p></o:p>
public List getSkillTables(SkillTable skillTable);<o:p></o:p>
<o:p> </o:p>
/**<o:p></o:p>
*find only staff's all skills<o:p></o:p>
* <o:p></o:p>
* SkillTableKey is a papm that is the skillTable's foregin key<o:p></o:p>
* @return skillTable populated skillTable object<o:p></o:p>
*/<o:p></o:p>
public List findByIds( SkillTableKey key);<o:p></o:p>
}<o:p></o:p>
第四在class SkillTableDaoHibernate 中实现List findByIds( SkillTableKey key);<o:p></o:p>
<o:p> </o:p>
package com.sunnyever.dao.hibernate;<o:p></o:p>
<o:p> </o:p>
import java.util.List;<o:p></o:p>
<o:p> </o:p>
import com.sunnyever.dao.hibernate.BaseDaoHibernate;<o:p></o:p>
import com.sunnyever.model.SkillTable;<o:p></o:p>
import com.sunnyever.model.SkillTableKey;<o:p></o:p>
import com.sunnyever.dao.SkillTableDao;<o:p></o:p>
<o:p> </o:p>
import org.hibernate.Query;<o:p></o:p>
import org.springframework.orm.ObjectRetrievalFailureException;<o:p></o:p>
<o:p> </o:p>
public class SkillTableDaoHibernate extends BaseDaoHibernate implements SkillTableDao {<o:p></o:p>
<o:p> </o:p>
/**<o:p></o:p>
* @see com.sunnyever.dao.SkillTableDao#getSkillTables(com.sunnyever.model.SkillTable)<o:p></o:p>
*/<o:p></o:p>
public List getSkillTables(final SkillTable skillTable) {<o:p></o:p>
return getHibernateTemplate().find("from SkillTable");<o:p></o:p>
<o:p> </o:p>
/* Remove the line above and uncomment this code block if you want <o:p></o:p>
to use Hibernate's Query by Example API.<o:p></o:p>
if (skillTable == null) {<o:p></o:p>
return getHibernateTemplate().find("from SkillTable");<o:p></o:p>
} else {<o:p></o:p>
// filter on properties set in the skillTable<o:p></o:p>
HibernateCallback callback = new HibernateCallback() {<o:p></o:p>
public Object doInHibernate(Session session) throws HibernateException {<o:p></o:p>
Example ex = Example.create(skillTable).ignoreCase().enableLike(MatchMode.ANYWHERE);<o:p></o:p>
return session.createCriteria(SkillTable.class).add(ex).list();<o:p></o:p>
}<o:p></o:p>
};<o:p></o:p>
return (List) getHibernateTemplate().execute(callback);<o:p></o:p>
}*/<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
/**<o:p></o:p>
* @see com.sunnyever.dao.SkillTableDao#getSkillTable(long staffskillId)<o:p></o:p>
*/<o:p></o:p>
public List findByIds( SkillTableKey key) {<o:p></o:p>
log.debug("getting SkillTable instance with id: " + key);<o:p></o:p>
try {<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
String hql="from SkillTable m where m.id.staffId=:staffId ";<o:p></o:p>
Query query= getSession().createQuery(hql);<o:p></o:p>
query.setProperties(key);<o:p></o:p>
<o:p></o:p>
return query.list();<o:p></o:p>
} catch (RuntimeException re) {<o:p></o:p>
log.error("get failed", re);<o:p></o:p>
throw re;<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
}<o:p></o:p>