EJB 2.1 is an older version while EJB 3.0 is a more updated version of 2.1
Although they have similarities, EJB 3.0 has more upgrades compared to 2.1
In terms of simplicity, it is much easier to use EJB 3.0, and it is to use EJB 2.1. An enterprise Java Bean Application can be created with much ease with the updated version.
The EJB 3.0 also introduces the Plain Old Java Object (POJO) programming model through the Java persistent API. Entities on EJB 3.0 are Plain Old Java Object-based.
EJB 2.1 uses entity bean to obtain the database, and it still makes use of home and remote interfaces.
EJB 2.1 is considered to be the older version of the EJB 3.0. They have some similarities with each other, but the EJB 3.0 is the more updated version. There is a difference with their interface because the 3.0 comes with a more straightforward look. This will also make looking up different information easier. The EJB 3.0 makes use of annotations while the 2.1 still makes use of home and remote interfaces.
The 3.0 makes use of the Java Persistence API so that data can be accessed well. The 2.1 makes use of entity beans so that the database can be obtained. There is no restriction with using standard interfaces with the 3.0, but the 2.1 will still have some limitations.
Some people would like to understand the differences between the two so that they can decide which one they should use. There are individual differences between the two. First of all, the lookup process is usually more straightforward in EJB 3.0 as compared to EJB 2.0. 3.0 is newer, which also means that it may be more portable.
The performance of the 3.0 is even better because it makes use of metadata annotation. You do not need to worry about the use of standard interfaces when you are using the 3.0. If you are already used to the 2.0, then you can use it, but if you want something more modern, EJB 3.0 is the better choice.