when the container looks at this query it first compiles and parses the ejb ql very much like the query execution . so it looks @ player which referes to the abstract schema . gets all the cmp field mappings .Constructs a sql query . Using the datasource definitions provided in the descriptors , connects to the database , executes the query and gets the result set . The container then utilises its OR mapping part to create ejb objects from the result set and thats the reason its object(p) where p is an alias to the schema Player . So the query says to create objects of Player schema only . Similar to the alias used in sql query .