I have talked with some people about the real job experience, and some of them had made the same unforgivable mistakes. I usually classify them as "the usual suspects" of poor performance and J2EE arch misuse:
1 - Use of Entity beans to do a browse operation. 2 - Entity-to-entity relationship. 3 - Modelling each use case as a Session Bean. 4 - Mixing control and business logic. 5 - Calling EJBs directly without a Business Delegate and Service Locator.
Although most people understand MVC and use Struts, they are not experient with the Business Logic / EIS layer. In fact there are people who thinks that you must use Entity Beans all the time, even though you are only browsing a list of book titles.
Other aspect is the use of Composite Entity J2EE design pattern. I have been working with EJB enabled applications for some time, and I never saw a good DATA-EJB modelling... the most frequent modelling is one-to-one, one table to one bean.
And even if you use DAO, you should mimic the Composite Entity behavior. Do not return columns! Instead, return VO�s (or a list of VO�s).
Think in coarse graining!
So be aware of this "suspects" in your submission. I know that most of the people here are experient J2EE architects, but some are not so experient.