我在Oracle數據庫有一個表CompanyList:春/休眠 - 過濾器由當前用戶ID
CMP_ID INTEGER -- ID of company
CMP_NAME VARCHAR2 -- name of company
USR_ID INTEGER -- Foreign key to the USERS table
我有我的春天3 MVC應用程序都使用註釋,我的POJO和配置,我的DAO對象( CompanyDao)使用hibernate檢索公司列表。
CompanyDao:
@Transactional
public Set<Company> findAllCompanys() throws DataAccessException {
return findAllCompanies(-1, -1);
}
@SuppressWarnings("unchecked")
@Transactional
public Set<Company> findAllCompanies(int startResult, int maxRows) throws DataAccessException {
Query query = createNamedQuery("findAllCompanies", startResult, maxRows);
return new LinkedHashSet<Company>(query.getResultList());
}
而我的公司域名:
@Entity
@NamedQueries({
@NamedQuery(name = "findAllCompanies", query = "select myCompany from Company myCompany")})
...
public class Company implements Serializable {
...
然後我設置春天的安全性,所以我所有的頁面需要鑑定。
使用當前登錄的用戶會話的用戶ID過濾由CompanyDao返回的行的最佳方式是什麼?