代码之家  ›  专栏  ›  技术社区  ›  guigui42

Spring/Hibernate-按当前用户ID筛选

  •  0
  • guigui42  · 技术社区  · 14 年前

    我的Oracle数据库中有一个表companylist:

    CMP_ID INTEGER -- ID of company
    CMP_NAME VARCHAR2 -- name of company
    USR_ID INTEGER -- Foreign key to the USERS table
    

    我的Spring3 MVC应用程序都是使用注释配置的,我的pojos也是,我的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 {
    ...
    

    然后我设置Spring安全性,所以我的所有页面都需要标识。

    使用当前登录用户会话的用户ID筛选CompanyDAO返回的行的最佳方法是什么?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Jeff    14 年前

        2
  •  1
  •   axtavt    14 年前

    @PostFilter 15.3.1 @Pre and @Post Annotations

    Company User findAllCompanies() findAllCompaniesForUser() userId SecurityContextHolder