Pojo = PURE OLD JAVA Object Or Plain ORDINARY JAVA Object or what EVER. PERSSENT OBJECT Persistent object is to say in some Object / Relation Mapping tools, you can maintain the Persisent Object that maintains database table record is completely a Java Bean specification. Pure Java objects do not add other properties and methods. All is this: Java code: public class user {private long id; private string name; public void setid (long id) {this.id = id;} public void setname (String name) {this.name = name; } public long getId () {returnid;} public string getname () {return name;}} ---------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------- First Persistent objects and Pojo. The lasting object actually must correspond to the entity in the database, so and POJO is different. For example, POJO is created by NEW, reclaimed by GC. But lasting objects are created in the INSERT database, deleted by Database delete. Basically lasting object life cycles and databases are closely related. In addition, lasting objects can only exist in a database connection. After Connnection is turned off, the lasting object does not exist, and the POJO will always exist as long as it is not recycled by GC. Since there are many differences, persistent object PO (Persistent Object) is definitely different on the code, and the at least PO will add some properties and methods to manage the database Entity status. The goal of ORM is to do as much as POJO is in use. For programmers, they can use PO as Pojo, but do not feel PO's presence. JDO's implementation method is this: 1, write Pojo 2, compile POJO 3, use a special tool for JDO, called Enhancer, usually a command line program, manually run, or run in Ant script, Class file to Pojo Treat it, replace POJO to PO of the same name. 4. It is actually PO in the running period, not Pojo. This method is a bit similar to JSP, and JSP is also running in the compile period to run, and the running period actually runs a servlet instead of JSP. Hibernate is more advanced: 1. Write Pojo 2, compile POJO 3, run directly, running during the runtime, translated POJO to PO. It can be seen that hibernate is converted to PO at the runtime period to PO, while JDO is translated in compile. Generally speaking, JDO's way is slightly higher, after all, is a compile time conversion. However, Hibernate's author Gavin King said that the efficiency of CGLIB is very high, and the byte code generation speed of the running period is very fast, and the efficiency loss can almost ignore. In fact, the benefits of running the PO are very large, so that for programmers, it is unable to come into contact with PO, and PO is completely transparent to them. Can be more free to manipulate the PO in pojo concept. In addition, since the runtime generation PO is generated, the incremental compile, incremental debugging can be supported. JDO can't do this.