├── Appendix A.pdf ├── GettingStarted.txt ├── LICENSE.txt ├── README.md ├── bin ├── bounceAppServer.bat ├── startservers.bat └── stopservers.bat ├── config ├── ant.bat ├── common.properties ├── common.xml ├── password.txt └── setenv.bat ├── contributing.md ├── database └── Readme.txt ├── examples ├── Chapter10 │ ├── 01-convertingAttributeState │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── BooleanToIntegerConverter.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeName.java │ │ │ │ │ ├── SecurityInfo.java │ │ │ │ │ ├── URLConverter.java │ │ │ │ │ └── UpperCaseConverter.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 02-complexEmbeddedObjects │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── ContactInfo.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Phone.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 03-overridingEmbeddedRelationships │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── ContactInfo.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Phone.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 04-idClass │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeId.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 05-embeddedIdClass │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeId.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 06-derivedSingleKey │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeHistory.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 07-derivedSharedMapsId │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeHistory.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 08-multipleMappedAttributes │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DeptId.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── ProjectId.java │ │ │ │ │ └── stateless │ │ │ │ │ └── ProjectService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── ProjectServiceServlet.java │ │ └── undeploy.bat │ ├── 09-derivedEmbeddedId │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DeptId.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── ProjectId.java │ │ │ │ │ └── stateless │ │ │ │ │ └── ProjectService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── ProjectServiceServlet.java │ │ └── undeploy.bat │ ├── 10-readOnlyMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 11-joinTableManyToOne │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 12-oneToManyNoJoinTable │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 13-compoundJoinTableColumns │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeId.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 14-orphanRemoval │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Evaluation.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 15-mappingRelationshipState │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Project.java │ │ │ │ │ ├── ProjectAssignment.java │ │ │ │ │ └── ProjectAssignmentId.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 16-multipleTables │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 17-embeddedObjectsMultipleTables │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 18-multipleTableCompoundPrimaryKey │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeId.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 19-singleTableInheritance │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── CachedEntity.java │ │ │ │ │ ├── CompanyEmployee.java │ │ │ │ │ ├── ContractEmployee.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── FullTimeEmployee.java │ │ │ │ │ └── PartTimeEmployee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 20-joinedTableInheritance │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── CachedEntity.java │ │ │ │ │ ├── CompanyEmployee.java │ │ │ │ │ ├── ContractEmployee.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── FullTimeEmployee.java │ │ │ │ │ └── PartTimeEmployee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 21-tablePerConcreteClass │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── CachedEntity.java │ │ │ │ │ ├── CompanyEmployee.java │ │ │ │ │ ├── ContractEmployee.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── FullTimeEmployee.java │ │ │ │ │ └── PartTimeEmployee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ └── 22-mixedInheritance │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── sql │ │ │ └── db.sql │ │ └── web │ │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── CachedEntity.java │ │ │ │ ├── CompanyEmployee.java │ │ │ │ ├── ContractEmployee.java │ │ │ │ ├── Employee.java │ │ │ │ ├── FullTimeEmployee.java │ │ │ │ └── PartTimeEmployee.java │ │ │ │ └── stateless │ │ │ │ └── EmployeeService.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat ├── Chapter11 │ ├── 01-nativeQueries │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── JdbcOrgStructureBean.java │ │ │ │ │ ├── NamedQueryOrgStructureBean.java │ │ │ │ │ ├── OrgStructure.java │ │ │ │ │ └── QueryOrgStructureBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 02-sqlInsertDelete │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── MessageLog.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── Logger.java │ │ │ │ │ └── LoggerBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── LoggerServlet.java │ │ └── undeploy.bat │ ├── 03-sqlResultSetMappings │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── OrgStructure.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 04-idClassResultMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeId.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 05-embeddedIdResultMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeId.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 06-inheritanceResultMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── CachedEntity.java │ │ │ │ │ ├── CompanyEmployee.java │ │ │ │ │ ├── ContractEmployee.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── FullTimeEmployee.java │ │ │ │ │ └── PartTimeEmployee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 07-constructorResultMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeDetails.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 08-storedProc │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ ├── buildsproc.bat │ │ │ │ ├── connect.txt │ │ │ │ ├── derby.log │ │ │ │ ├── examples │ │ │ │ │ ├── model │ │ │ │ │ │ ├── Address.java │ │ │ │ │ │ ├── Department.java │ │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ │ ├── Employee.java │ │ │ │ │ │ ├── EmployeeDetails.java │ │ │ │ │ │ ├── Phone.java │ │ │ │ │ │ ├── Project.java │ │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ │ ├── Sproc.class │ │ │ │ │ │ └── Sproc.java │ │ │ │ ├── hello.txt │ │ │ │ ├── ij.txt │ │ │ │ ├── install.txt │ │ │ │ └── sproc.jar │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 09-namedEntityGraphBasic │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Address.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 10-namedEntityGraphSubgraphs │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeDetails.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 11-namedEntityGraphMultipleDefs │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeDetails.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 12-namedEntityGraphInheritance │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeDetails.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 13-namedEntityGraphRootInheritance │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── ContractEmployee.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeDetails.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 14-namedEntityGraphMapKey │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeName.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 15-dynamicEntityGraphBasic │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Address.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 16-dynamicEntityGraphSubgraphs │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 17-dynamicEntityGraphMultipleDefs │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 18-dynamicEntityGraphInheritance │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 19-dynamicEntityGraphRootInheritance │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── ContractEmployee.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 20-dynamicEntityGraphMapKey │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeName.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 21-accessingEntityGraphs │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── ContractEmployee.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── DesignProject.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ ├── Project.java │ │ │ │ │ └── QualityProject.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ └── 22-creatingEntityGraphFromExisting │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Address.java │ │ │ │ ├── ContractEmployee.java │ │ │ │ ├── Department.java │ │ │ │ ├── DesignProject.java │ │ │ │ ├── Employee.java │ │ │ │ ├── Phone.java │ │ │ │ ├── Project.java │ │ │ │ └── QualityProject.java │ │ │ │ └── stateless │ │ │ │ └── EmployeeService.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat ├── Chapter12 │ ├── 01-lifecycleCallbacks │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeDebugListener.java │ │ │ │ │ ├── NameValidator.java │ │ │ │ │ ├── NamedEntity.java │ │ │ │ │ └── ValidationException.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 02-lifecycleCallbackInheritance │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ ├── orm.xml │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── CompanyEmployee.java │ │ │ │ │ ├── ContractEmployee.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeAudit.java │ │ │ │ │ ├── EmployeeDebugListener.java │ │ │ │ │ ├── EmployeeType.java │ │ │ │ │ ├── FullTimeEmployee.java │ │ │ │ │ ├── LongNameValidator.java │ │ │ │ │ ├── NameValidator.java │ │ │ │ │ ├── NamedEntity.java │ │ │ │ │ └── PartTimeEmployee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 03-constraints │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 04-validatorInjection │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 05-constraintGroups │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── FullTime.java │ │ │ │ │ └── PartTime.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 06-constraintAnnotation │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Even.java │ │ │ │ │ └── EvenNumberValidator.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 07-validatingEntity │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── EmployeeInfo.java │ │ │ │ │ └── PersonInfo.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 08-validationLifecycle │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Remove.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 09-entityRefresh │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateful │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 10-entityRevert │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── jsp │ │ │ │ ├── editEmployee.jsp │ │ │ │ └── listEmployees.jsp │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ ├── stateful │ │ │ │ │ └── EmployeeEdit.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ ├── EmployeeEditServlet.java │ │ │ │ ├── EmployeeServiceServlet.java │ │ │ │ └── EmployeeUpdateServlet.java │ │ └── undeploy.bat │ ├── 11-readLocking │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── SalaryReport.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 12-writeLocking │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Uniform.java │ │ │ │ │ └── stateful │ │ │ │ │ ├── EmployeeManagement.java │ │ │ │ │ └── FeeManagement.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 13-optimisticLockRecovery │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── ChangeCollisionException.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmpServiceClient.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 14-pessWriteLocking │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── ChangeCollisionException.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeStatus.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── VacationAccrualService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ └── 15-cacheModeProperties │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ └── Stock.java │ │ │ │ └── stateless │ │ │ │ └── StockService.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── StockServiceServlet.java │ │ └── undeploy.bat ├── Chapter13 │ └── xmlMappings │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ ├── orm.xml │ │ │ │ └── persistence.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Address.java │ │ │ │ ├── CompanyEmployee.java │ │ │ │ ├── ContractEmployee.java │ │ │ │ ├── Department.java │ │ │ │ ├── Employee.java │ │ │ │ ├── FullTimeEmployee.java │ │ │ │ ├── ParkingSpace.java │ │ │ │ ├── PartTimeEmployee.java │ │ │ │ └── Project.java │ │ │ │ └── stateless │ │ │ │ └── EmployeeService.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat ├── Chapter14 │ ├── 00-splittingFiles │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ ├── employee_service_entities.xml │ │ │ │ │ ├── employee_service_queries.xml │ │ │ │ │ ├── orm.xml │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 01-ejbJarPackaging │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ ├── orm.xml │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 02-externalJarPackaging │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ ├── emp-mappings.xml │ │ │ │ │ ├── orm.xml │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 03-webInfClassesPackaging │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ ├── orm.xml │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 04-persistenceArchivePackaging │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ ├── orm.xml │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 04z-schemaGenCreateTarget │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ └── persistence │ │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 05-schemaUniqueConstraints │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── META-INF │ │ │ │ └── application.xml │ │ │ └── persistence │ │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── src │ │ │ └── model │ │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ └── Employee.java │ │ │ │ └── stateless │ │ │ │ ├── EmployeeService.java │ │ │ │ └── EmployeeServiceBean.java │ │ └── undeploy.bat │ ├── 06-schemaUniqueConstraints2 │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ └── persistence │ │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── src │ │ │ └── model │ │ │ │ └── examples │ │ │ │ └── model │ │ │ │ └── Employee.java │ │ └── undeploy.bat │ ├── 07-schemaNullConstraints │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ └── persistence │ │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── src │ │ │ └── model │ │ │ │ └── examples │ │ │ │ └── model │ │ │ │ ├── Address.java │ │ │ │ └── Employee.java │ │ └── undeploy.bat │ ├── 08-schemaStringBasedColumns │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ └── persistence │ │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── src │ │ │ └── model │ │ │ │ └── examples │ │ │ │ └── model │ │ │ │ └── Employee.java │ │ └── undeploy.bat │ ├── 09-schemaFloatingPointColumn │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ └── persistence │ │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── src │ │ │ └── model │ │ │ │ └── examples │ │ │ │ └── model │ │ │ │ └── PartTimeEmployee.java │ │ └── undeploy.bat │ └── 10-schemaColumnDefinition │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ └── persistence │ │ │ └── META-INF │ │ │ └── persistence.xml │ │ ├── src │ │ └── model │ │ │ └── examples │ │ │ └── model │ │ │ └── Employee.java │ │ └── undeploy.bat ├── Chapter15 │ ├── 01-testingEntities │ │ ├── TEST-examples.stateless.DepartmentTest.txt │ │ ├── build.xml │ │ ├── run.bat │ │ └── src │ │ │ ├── model │ │ │ └── examples │ │ │ │ └── model │ │ │ │ ├── Department.java │ │ │ │ └── Employee.java │ │ │ └── test │ │ │ └── examples │ │ │ └── stateless │ │ │ └── DepartmentTest.java │ ├── 02-testingEntitiesInComponents │ │ ├── build.xml │ │ ├── run.bat │ │ └── src │ │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Department.java │ │ │ │ └── Employee.java │ │ │ │ └── stateless │ │ │ │ ├── EmployeeService.java │ │ │ │ ├── EmployeeServiceBean.java │ │ │ │ ├── Vacation.java │ │ │ │ └── VacationBean.java │ │ │ └── test │ │ │ └── examples │ │ │ └── stateless │ │ │ └── VacationBeanTest.java │ ├── 03-emTesting │ │ ├── build.xml │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ └── User.java │ │ │ │ └── stateless │ │ │ │ ├── UserService.java │ │ │ │ └── UserServiceBean.java │ │ │ └── test │ │ │ └── examples │ │ │ └── stateless │ │ │ ├── MockEntityManager.java │ │ │ ├── UserServiceTest.java │ │ │ ├── UserServiceTest2.java │ │ │ └── UserServiceTest3.java │ ├── 04-xmlOverrides │ │ ├── build.xml │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ ├── derby-overrides.xml │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ └── Phone.java │ │ │ │ └── stateless │ │ │ │ ├── PhoneService.java │ │ │ │ └── PhoneServiceBean.java │ │ │ └── test │ │ │ └── examples │ │ │ └── stateless │ │ │ └── PhoneServiceTest.java │ ├── 05-minimizingDBConnections │ │ ├── build.xml │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ └── User.java │ │ │ │ └── stateless │ │ │ │ ├── UserService.java │ │ │ │ └── UserServiceBean.java │ │ │ └── test │ │ │ └── examples │ │ │ └── stateless │ │ │ ├── DatabaseTest.java │ │ │ ├── MockEntityManager.java │ │ │ └── UserServiceTest3.java │ ├── 06-containerManagedTxTesting │ │ ├── build.xml │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Department.java │ │ │ │ └── Employee.java │ │ │ │ └── stateless │ │ │ │ ├── DepartmentService.java │ │ │ │ └── DepartmentServiceBean.java │ │ │ └── test │ │ │ └── examples │ │ │ └── stateless │ │ │ └── DepartmentServiceBeanTest.java │ ├── 07-beanManagedTxTesting │ │ ├── build.xml │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Department.java │ │ │ │ └── Employee.java │ │ │ │ └── stateless │ │ │ │ ├── DepartmentService.java │ │ │ │ └── DepartmentServiceBean.java │ │ │ └── test │ │ │ └── examples │ │ │ └── stateless │ │ │ ├── DepartmentServiceBeanTest.java │ │ │ └── EntityUserTransaction.java │ ├── 08-nullUserTxTesting │ │ ├── build.xml │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Department.java │ │ │ │ └── Employee.java │ │ │ │ └── stateless │ │ │ │ ├── DepartmentService.java │ │ │ │ └── DepartmentServiceBean.java │ │ │ └── test │ │ │ └── examples │ │ │ └── stateless │ │ │ ├── DepartmentServiceBeanTest.java │ │ │ └── NullUserTransaction.java │ ├── 09-containerManagedEmTesting │ │ ├── build.xml │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Employee.java │ │ │ │ └── LogRecord.java │ │ │ │ └── stateless │ │ │ │ ├── AuditService.java │ │ │ │ ├── AuditServiceBean.java │ │ │ │ ├── EmployeeService.java │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── test │ │ │ └── examples │ │ │ └── stateless │ │ │ ├── EntityUserTransaction.java │ │ │ └── TestEmployeeServiceBean.java │ └── 10-springTesting │ │ ├── build.xml │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── spring │ │ │ └── test-employee-service-bean.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ ├── model │ │ └── examples │ │ │ ├── model │ │ │ ├── Employee.java │ │ │ └── LogRecord.java │ │ │ └── stateless │ │ │ ├── AuditService.java │ │ │ ├── AuditServiceBean.java │ │ │ ├── EmployeeService.java │ │ │ └── EmployeeServiceBean.java │ │ └── test │ │ └── examples │ │ └── stateless │ │ ├── EntityManagerFactoryBean.java │ │ └── TestEmployeeServiceBean.java ├── Chapter2 │ └── employeeService │ │ ├── build.xml │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── lib │ │ └── eclipselink.jar │ │ ├── run.bat │ │ ├── runInteractive.bat │ │ └── src │ │ ├── client │ │ └── examples │ │ │ └── client │ │ │ ├── EmployeeTest.java │ │ │ └── EmployeeTestInteractive.java │ │ └── model │ │ └── examples │ │ └── model │ │ ├── Employee.java │ │ └── EmployeeService.java ├── Chapter3 │ ├── 01-slsbExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateless │ │ │ │ │ ├── HelloService.java │ │ │ │ │ └── HelloServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── HelloServiceServlet.java │ │ └── undeploy.bat │ ├── 02-slsbNoInterfaceExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateless │ │ │ │ │ └── HelloService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── HelloServiceServlet.java │ │ └── undeploy.bat │ ├── 03-slsbLifecycleExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateless │ │ │ │ │ └── LoggerBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── LoggerServlet.java │ │ └── undeploy.bat │ ├── 04-sfsbExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateful │ │ │ │ │ └── ShoppingCart.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── ShoppingCartServlet.java │ │ └── undeploy.bat │ ├── 05-sfsbLifecycleExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Order.java │ │ │ │ │ └── stateful │ │ │ │ │ └── OrderBrowser.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── OrderBrowserServlet.java │ │ └── undeploy.bat │ ├── 06-singletonExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── singleton │ │ │ │ │ └── HitCounter.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── HitCountServlet.java │ │ └── undeploy.bat │ ├── 07-servletExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── LoginServlet.java │ │ └── undeploy.bat │ ├── 08-dependencyLookup │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateless │ │ │ │ │ ├── AuditService.java │ │ │ │ │ └── DepartmentService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── DepartmentServiceServlet.java │ │ └── undeploy.bat │ ├── 09-ejbContextLookup │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateless │ │ │ │ │ ├── AuditService.java │ │ │ │ │ └── DepartmentService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── DepartmentServiceServlet.java │ │ └── undeploy.bat │ ├── 10-fieldInjection │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateless │ │ │ │ │ ├── AuditService.java │ │ │ │ │ └── DepartmentService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── DepartmentServiceServlet.java │ │ └── undeploy.bat │ ├── 11-setterInjection │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateless │ │ │ │ │ ├── AuditService.java │ │ │ │ │ └── DepartmentService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── DepartmentServiceServlet.java │ │ └── undeploy.bat │ ├── 12-cdiExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ └── persistence │ │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── beans │ │ │ │ │ ├── AuditService.java │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ ├── EmProducers.java │ │ │ │ │ ├── EmployeeEM.java │ │ │ │ │ ├── Secure.java │ │ │ │ │ └── SecureDepartmentService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── DepartmentServiceServlet.java │ │ └── undeploy.bat │ ├── 13-cmtExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateful │ │ │ │ │ └── ShoppingCart.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── ShoppingCartServlet.java │ │ └── undeploy.bat │ ├── 14-txInterceptor │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── beans │ │ │ │ │ └── ShoppingCart.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── ShoppingCartServlet.java │ │ └── undeploy.bat │ ├── 15-userTxExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── stateless │ │ │ │ │ ├── ProjectService.java │ │ │ │ │ └── ProjectServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── ProjectServlet.java │ │ └── undeploy.bat │ └── 16-employeeService │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ └── Employee.java │ │ │ │ └── stateless │ │ │ │ └── EmployeeService.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat ├── Chapter4 │ ├── 01-fieldAccess │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 02-propertyAccess │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 03-mixedAccess │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 04-customTableSchema │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 05-customColumnMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 06-lobMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 07-enumMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeType.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 08-temporalMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 09-transientMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 10-autoIdGeneration │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 11-tableIdGeneration │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 12-sequenceIdGeneration │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 13-dbIdentityIdGeneration │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 14-manyToOne │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ ├── DepartmentServiceBean.java │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 15-joinColumn │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ ├── DepartmentServiceBean.java │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 16-oneToOneUnidirectional │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── ParkingSpace.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ ├── EmployeeServiceBean.java │ │ │ │ │ ├── ParkingSpaceService.java │ │ │ │ │ └── ParkingSpaceServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 17-oneToOneBidirectional │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── ParkingSpace.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ ├── EmployeeServiceBean.java │ │ │ │ │ ├── ParkingSpaceService.java │ │ │ │ │ └── ParkingSpaceServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 18-oneToOnePkMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── ParkingSpace.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ ├── EmployeeServiceBean.java │ │ │ │ │ ├── ParkingSpaceService.java │ │ │ │ │ └── ParkingSpaceServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 19-oneToManyBidirectional │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ ├── DepartmentServiceBean.java │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 20-oneToManyTargetEntity │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ ├── DepartmentServiceBean.java │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 21-manyToManyBidirectional │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ ├── EmployeeServiceBean.java │ │ │ │ │ ├── ProjectService.java │ │ │ │ │ └── ProjectServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 22-manyToManyJoinTable │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ ├── EmployeeServiceBean.java │ │ │ │ │ ├── ProjectService.java │ │ │ │ │ └── ProjectServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 23-oneToManyUnidirectional │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Phone.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ ├── EmployeeServiceBean.java │ │ │ │ │ ├── PhoneService.java │ │ │ │ │ └── PhoneServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 24-oneToOneLazy │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── ParkingSpace.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ ├── EmployeeServiceBean.java │ │ │ │ │ ├── ParkingSpaceService.java │ │ │ │ │ └── ParkingSpaceServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 25-embeddedObjects │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── EmployeeServiceBean.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ └── 26-sharingEmbeddedObjects │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Address.java │ │ │ │ ├── Company.java │ │ │ │ └── Employee.java │ │ │ │ └── stateless │ │ │ │ ├── EmployeeService.java │ │ │ │ └── EmployeeServiceBean.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat ├── Chapter5 │ ├── 1-elementCollection │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── VacationEntry.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 10-embeddableKeyMapping │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeName.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 11-manyToManyEmbeddableKeyOverride │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeName.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 12-elementCollectionMapKeyEntity │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 13-untypedMaps │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 2-overrideCollectionTableColumn │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── VacationEntry.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 3-oneToManyList │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 4-persistentlyOrderedList │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── PrintJob.java │ │ │ │ │ └── PrintQueue.java │ │ │ │ │ └── stateless │ │ │ │ │ └── PrintService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── PrinterServlet.java │ │ └── undeploy.bat │ ├── 5-elementCollectionStringMap │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 6-elementCollectionEnumMap │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── PhoneType.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 7-oneToManyMap │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 8-manyToManyMap │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ └── 9-oneToManyEntityAttributeKey │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Department.java │ │ │ │ └── Employee.java │ │ │ │ └── stateless │ │ │ │ ├── DepartmentService.java │ │ │ │ └── EmployeeService.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat ├── Chapter6 │ ├── 01-txScopedEmExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── ProjectService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 02-extendedEmExample1 │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentManager.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 03-extendedEmExample2 │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentManager.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 04-extendedEmExample3 │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentManager.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 05-applicationManagedSE │ │ ├── build.xml │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ │ ├── client │ │ │ └── examples │ │ │ │ └── client │ │ │ │ └── EmployeeClient.java │ │ │ └── model │ │ │ └── examples │ │ │ └── model │ │ │ ├── Employee.java │ │ │ └── EmployeeService.java │ ├── 06-applicationManagedEE │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── model │ │ │ │ │ └── User.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── LoginServlet.java │ │ └── undeploy.bat │ ├── 07-txScopedPersistenceContext │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── LogRecord.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── AuditService.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 08-extendedPersistenceContext │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── LogRecord.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── AuditService.java │ │ │ │ │ ├── DepartmentManager.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 09-persistenceContextCollision │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── LogRecord.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── AuditService.java │ │ │ │ │ ├── DepartmentManager.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 10-persistenceContextInheritance │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── LogRecord.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── AuditService.java │ │ │ │ │ ├── DepartmentManager.java │ │ │ │ │ ├── EmployeeManager.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 11-applicationManagedJTA │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentManager.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 12-sharingApplicationManagedJTA │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 13-unsyncPC │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── CustomerOrder.java │ │ │ │ │ └── OrderItem.java │ │ │ │ │ └── stateful │ │ │ │ │ └── ShoppingCart.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── ShoppingCartServlet.java │ │ └── undeploy.bat │ ├── 14-resourceLocalTxSE │ │ ├── build.xml │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── run.bat │ │ └── src │ │ │ ├── client │ │ │ └── examples │ │ │ │ └── client │ │ │ │ └── ExpirePasswords.java │ │ │ └── model │ │ │ └── examples │ │ │ └── model │ │ │ └── User.java │ ├── 15-resourceLocalTxEE │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── LogRecord.java │ │ │ │ │ └── stateless │ │ │ │ │ └── LogService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── LoggingServlet.java │ │ └── undeploy.bat │ ├── 16-persistingWithRelationships │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 17-persistingWithRelationshipsUsingGetReference │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 18-removingWithRelationships │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── ParkingSpace.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 19-persistingWithRelationshipsCascade │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 20-removingWithRelationshipsCascade │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── ParkingSpace.java │ │ │ │ │ └── Phone.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 21-mergingDetachedEntities │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 22-detachmentWithTriggeredLazyLoading │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── jsp │ │ │ │ └── listEmployees.jsp │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 23-detachmentWithEagerLoading │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── jsp │ │ │ │ └── listEmployees.jsp │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 24-noDetachmentSingleTx │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── jsp │ │ │ │ └── listEmployees.jsp │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 25-noDetachmentAppManagedEm │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── jsp │ │ │ │ └── listEmployees.jsp │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ └── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 26-noDetachmentSFSBAndExtendedEm │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── jsp │ │ │ │ └── listEmployees.jsp │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employee.java │ │ │ │ │ └── stateful │ │ │ │ │ └── EmployeeQuery.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 27-editSessionExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── jsp │ │ │ │ ├── editEmployee.jsp │ │ │ │ └── listEmployees.jsp │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ └── Employee.java │ │ │ │ │ ├── stateful │ │ │ │ │ └── EmployeeEdit.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ ├── EmployeeEditServlet.java │ │ │ │ ├── EmployeeServiceServlet.java │ │ │ │ └── EmployeeUpdateServlet.java │ │ └── undeploy.bat │ └── 28-conversationExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── sql │ │ │ └── db.sql │ │ └── web │ │ │ └── jsp │ │ │ ├── editEmployee.jsp │ │ │ └── listEmployees.jsp │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ └── Employee.java │ │ │ │ └── stateful │ │ │ │ └── EmployeeService.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ ├── EmployeeEditServlet.java │ │ │ ├── EmployeeServiceServlet.java │ │ │ └── EmployeeUpdateServlet.java │ │ └── undeploy.bat ├── Chapter7 │ ├── 01-dynamicQueryExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── QueryService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── QueryServiceServlet.java │ │ └── undeploy.bat │ ├── 02-namedQueryExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 03-dynamicNamedQueryExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── QueryService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 04-paramTypesExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── EmployeeService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 05-executingQueriesExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateful │ │ │ │ │ └── ProjectManager.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 06-queryResultsExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── EmpMenu.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── QueryService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ ├── 07-queryPagingExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateful │ │ │ │ │ └── ResultPager.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeePagingServlet.java │ │ └── undeploy.bat │ ├── 08-messageBoardExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ ├── sql │ │ │ │ └── db.sql │ │ │ └── web │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Conversation.java │ │ │ │ │ └── Message.java │ │ │ │ │ └── stateless │ │ │ │ │ └── ConversationMaintenance.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── MessageBoardServlet.java │ │ └── undeploy.bat │ ├── 09-bulkQueryExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ ├── DepartmentService.java │ │ │ │ │ ├── EmployeeService.java │ │ │ │ │ └── ProjectService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat │ └── 10-queryHintsExample │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ └── Employee.java │ │ │ │ └── stateless │ │ │ │ └── EmployeeService.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat ├── Chapter8 │ └── jpqlExamples │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── sql │ │ │ └── db.sql │ │ └── web │ │ │ └── html │ │ │ └── index.html │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ └── model │ │ │ │ ├── Address.java │ │ │ │ ├── Department.java │ │ │ │ ├── DesignProject.java │ │ │ │ ├── Employee.java │ │ │ │ ├── EmployeeDetails.java │ │ │ │ ├── Phone.java │ │ │ │ ├── Project.java │ │ │ │ └── QualityProject.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── ClientServlet.java │ │ └── undeploy.bat ├── Chapter9 │ ├── 01-employeeSearchService │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── SearchService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 02-predicateConjunction │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── SearchService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 03-empSearchSubQuery │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── SearchService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 04-metamodelStronglyTyped │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ │ ├── persistence │ │ │ │ └── META-INF │ │ │ │ │ └── persistence.xml │ │ │ └── sql │ │ │ │ └── db.sql │ │ ├── src │ │ │ ├── model │ │ │ │ └── examples │ │ │ │ │ ├── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Department.java │ │ │ │ │ ├── Employee.java │ │ │ │ │ ├── Phone.java │ │ │ │ │ └── Project.java │ │ │ │ │ └── stateless │ │ │ │ │ └── SearchService.java │ │ │ └── servlet │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat │ ├── 05-canonicalMetamodel │ │ ├── META-INF │ │ │ └── persistence.xml │ │ ├── build.xml │ │ ├── generate.bat │ │ ├── generateAndCompile.bat │ │ └── src │ │ │ └── model │ │ │ └── examples │ │ │ └── model │ │ │ ├── Address.java │ │ │ ├── Department.java │ │ │ ├── Employee.java │ │ │ ├── Phone.java │ │ │ └── Project.java │ └── 06-canonicalMetamodelQuery │ │ ├── META-INF │ │ └── persistence.xml │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ └── sql │ │ │ └── db.sql │ │ ├── src │ │ ├── model │ │ │ └── examples │ │ │ │ ├── model │ │ │ │ ├── Address.java │ │ │ │ ├── Department.java │ │ │ │ ├── Employee.java │ │ │ │ ├── Phone.java │ │ │ │ └── Project.java │ │ │ │ └── stateless │ │ │ │ └── SearchService.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── EmployeeServlet.java │ │ └── undeploy.bat ├── OldMigrationExample │ └── entityBeanMigration │ │ ├── build.xml │ │ ├── deploy.bat │ │ ├── etc │ │ ├── persistence │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ ├── sql │ │ │ └── db.sql │ │ └── web │ │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── src │ │ ├── ejb │ │ │ └── examples │ │ │ │ └── stateless │ │ │ │ ├── DepartmentHome.java │ │ │ │ ├── DepartmentHomeBean.java │ │ │ │ ├── EmployeeHome.java │ │ │ │ ├── EmployeeHomeBean.java │ │ │ │ ├── ProjectService.java │ │ │ │ └── ProjectServiceBean.java │ │ ├── model │ │ │ └── examples │ │ │ │ ├── entitybean │ │ │ │ ├── Department.java │ │ │ │ ├── DepartmentBean.java │ │ │ │ ├── DepartmentHome.java │ │ │ │ ├── Employee.java │ │ │ │ ├── EmployeeBean.java │ │ │ │ ├── EmployeeHome.java │ │ │ │ ├── Project.java │ │ │ │ └── ProjectHome.java │ │ │ │ └── model │ │ │ │ ├── Address.java │ │ │ │ ├── AddressDAO.java │ │ │ │ ├── AddressEntityDAO.java │ │ │ │ ├── AddressTO.java │ │ │ │ ├── ApplicationException.java │ │ │ │ ├── Department.java │ │ │ │ ├── Employee.java │ │ │ │ ├── ManagerStats.java │ │ │ │ ├── Project.java │ │ │ │ └── ServiceLocator.java │ │ └── servlet │ │ │ └── examples │ │ │ └── servlet │ │ │ └── EmployeeServiceServlet.java │ │ └── undeploy.bat └── examplesHome.html └── lib ├── commons-logging.jar ├── junit-4.0.jar ├── org.eclipse.persistence.jpa.modelgen.processor.jar └── readme.txt /Appendix A.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-jpa-2-in-java-ee-8/f56e599b79cc8a216c135ac868a692d9022c2e7a/Appendix A.pdf -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-jpa-2-in-java-ee-8/f56e599b79cc8a216c135ac868a692d9022c2e7a/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Apress Source Code 2 | 3 | This repository accompanies [*Pro JPA 2 in Java EE 8*](http://www.apress.com/9781484234198) by Mike Keith, Merrick Schincariol, and Massimo Nardone (Apress, 2018). 4 | 5 | [comment]: #cover 6 | 7 | 8 | Download the files as a zip using the green button, or clone the repository to your machine using Git. 9 | 10 | ## Releases 11 | 12 | Release v1.0 corresponds to the code in the published book, without corrections or updates. 13 | 14 | ## Contributions 15 | 16 | See the file Contributing.md for more information on how you can contribute to this repository. 17 | -------------------------------------------------------------------------------- /bin/bounceAppServer.bat: -------------------------------------------------------------------------------- 1 | call ../config/setenv 2 | 3 | call %ANT_HOME%/bin/ant -f ../config/common.xml stop_server 4 | call %ANT_HOME%/bin/ant -f ../config/common.xml start_server 5 | 6 | pause 7 | -------------------------------------------------------------------------------- /bin/startservers.bat: -------------------------------------------------------------------------------- 1 | call ../config/setenv 2 | 3 | call %ANT_HOME%/bin/ant -f ../config/common.xml start_db 4 | call %ANT_HOME%/bin/ant -f ../config/common.xml start_server 5 | 6 | 7 | pause 8 | -------------------------------------------------------------------------------- /bin/stopservers.bat: -------------------------------------------------------------------------------- 1 | call ../config/setenv 2 | 3 | call %ANT_HOME%/bin/ant -f ../config/common.xml stop_server 4 | call %ANT_HOME%/bin/ant -f ../config/common.xml stop_db 5 | 6 | pause 7 | -------------------------------------------------------------------------------- /config/ant.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem === Called from each example 3 levels down === 3 | 4 | call ../../../config/setenv.bat 5 | 6 | call %ANT_HOME%/bin/ant %1 7 | 8 | -------------------------------------------------------------------------------- /config/password.txt: -------------------------------------------------------------------------------- 1 | AS_ADMIN_PASSWORD=adminadmin -------------------------------------------------------------------------------- /config/setenv.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem === If these are not already set in your environment then uncomment and set these 3 | rem === two to the directory appropriate to your environment. 4 | rem 5 | rem JAVA_HOME= 6 | rem ANT_HOME= 7 | rem 8 | set ANT_HOME=c:\apache-ant-1.10.1 9 | 10 | if "%JAVA_HOME%"=="" echo "Need to set JAVA_HOME environment variable in \config\setEnv.bat" 11 | if "%ANT_HOME%"=="" echo "Need to set ANT_HOME environment variable in \config\setEnv.bat" 12 | 13 | 14 | -------------------------------------------------------------------------------- /database/Readme.txt: -------------------------------------------------------------------------------- 1 | This directory contains the Derby databases used for the examples. 2 | They will be created when the examples are run. -------------------------------------------------------------------------------- /examples/Chapter10/01-convertingAttributeState/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/01-convertingAttributeState/src/model/examples/model/BooleanToIntegerConverter.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.AttributeConverter; 4 | import javax.persistence.Converter; 5 | 6 | @Converter 7 | public class BooleanToIntegerConverter implements AttributeConverter { 8 | 9 | public Integer convertToDatabaseColumn(Boolean attrib) { 10 | return (attrib ? 1 : 0); 11 | } 12 | 13 | public Boolean convertToEntityAttribute(Integer dbData) { 14 | return (dbData > 0); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/Chapter10/01-convertingAttributeState/src/model/examples/model/EmployeeName.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public class EmployeeName { 7 | 8 | private String firstName; 9 | private String lastName; 10 | 11 | public String toString() { 12 | return firstName + " " + lastName; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /examples/Chapter10/01-convertingAttributeState/src/model/examples/model/UpperCaseConverter.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.AttributeConverter; 4 | import javax.persistence.Converter; 5 | 6 | @Converter 7 | public class UpperCaseConverter implements AttributeConverter { 8 | 9 | public String convertToDatabaseColumn(String attrib) { 10 | return attrib.toUpperCase(); 11 | } 12 | 13 | public String convertToEntityAttribute(String dbData) { 14 | String lower = dbData.substring(1).toLowerCase(); 15 | return dbData.substring(0,1).concat(lower); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/Chapter10/01-convertingAttributeState/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/02-complexEmbeddedObjects/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/02-complexEmbeddedObjects/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE PHONE; 2 | DROP TABLE EMPLOYEE; 3 | DROP TABLE EMP_PHONES; 4 | CREATE TABLE PHONE (NUM VARCHAR(255) NOT NULL, TYPE VARCHAR(255), PRIMARY KEY (NUM)); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRI_NUM VARCHAR(255), ZIP_CODE VARCHAR(255), STREET VARCHAR(255), STATE VARCHAR(255), CITY VARCHAR(255), PRIMARY KEY (ID)); 6 | CREATE TABLE EMP_PHONES (Employee_ID INTEGER NOT NULL, phones_NUM VARCHAR(255) NOT NULL, PRIMARY KEY (Employee_ID, phones_NUM)); -------------------------------------------------------------------------------- /examples/Chapter10/02-complexEmbeddedObjects/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/03-overridingEmbeddedRelationships/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/03-overridingEmbeddedRelationships/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/04-idClass/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter10/04-idClass/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/04-idClass/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (COUNTRY VARCHAR(255) NOT NULL, EMP_ID INTEGER NOT NULL, NAME VARCHAR(255), 4 | SALARY BIGINT, PRIMARY KEY(COUNTRY,EMP_ID)); 5 | -------------------------------------------------------------------------------- /examples/Chapter10/04-idClass/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/05-embeddedIdClass/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/05-embeddedIdClass/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (COUNTRY VARCHAR(255) NOT NULL, EMP_ID INTEGER NOT NULL, NAME VARCHAR(255), 4 | SALARY BIGINT, PRIMARY KEY(COUNTRY,EMP_ID)); 5 | -------------------------------------------------------------------------------- /examples/Chapter10/05-embeddedIdClass/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/06-derivedSingleKey/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/06-derivedSingleKey/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE EMPLOYEEHISTORY; 3 | CREATE TABLE EMPLOYEEHISTORY (EMP_ID INTEGER NOT NULL, PRIMARY KEY (EMP_ID)); 4 | CREATE TABLE EMPLOYEE (ID INTEGER, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)) -------------------------------------------------------------------------------- /examples/Chapter10/06-derivedSingleKey/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/07-derivedSharedMapsId/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/07-derivedSharedMapsId/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE EMPLOYEEHISTORY; 3 | CREATE TABLE EMPLOYEEHISTORY (EMP_ID INTEGER NOT NULL, PRIMARY KEY (EMP_ID)); 4 | CREATE TABLE EMPLOYEE (ID INTEGER, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)) -------------------------------------------------------------------------------- /examples/Chapter10/07-derivedSharedMapsId/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/08-multipleMappedAttributes/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/08-multipleMappedAttributes/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE PROJECT; 2 | DROP TABLE DEPARTMENT; 3 | 4 | CREATE TABLE DEPARTMENT (NUM INTEGER NOT NULL, COUNTRY VARCHAR(255), NAME VARCHAR(255), PRIMARY KEY (NUM, COUNTRY)); 5 | CREATE TABLE PROJECT (NAME VARCHAR(255) NOT NULL, DEPT_NUM INTEGER NOT NULL, DEPT_CTRY VARCHAR(255), START_DATE DATE, END_DATE DATE, PRIMARY KEY (NAME, DEPT_NUM, DEPT_CTRY)); 6 | 7 | INSERT INTO DEPARTMENT(NUM, COUNTRY, NAME) VALUES (1, 'CA', 'Engineering'); 8 | INSERT INTO PROJECT (NAME, DEPT_NUM, DEPT_CTRY, START_DATE, END_DATE) VALUES ('Release3', 1, 'CA', {d '2002-12-05'}, {d '2002-08-06'}); 9 | -------------------------------------------------------------------------------- /examples/Chapter10/08-multipleMappedAttributes/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/09-derivedEmbeddedId/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/09-derivedEmbeddedId/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/10-readOnlyMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/10-readOnlyMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/11-joinTableManyToOne/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/11-joinTableManyToOne/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMP_DEPT; 2 | DROP TABLE EMPLOYEE; 3 | DROP TABLE DEPARTMENT; 4 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 5 | NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 6 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 7 | NAME VARCHAR(255), PRIMARY KEY (ID)); 8 | CREATE TABLE EMP_DEPT (Employee_ID INTEGER NOT NULL, department_ID INTEGER NOT NULL, PRIMARY KEY (Employee_ID, department_ID)); 9 | 10 | -------------------------------------------------------------------------------- /examples/Chapter10/11-joinTableManyToOne/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/12-oneToManyNoJoinTable/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/12-oneToManyNoJoinTable/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/13-compoundJoinTableColumns/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/13-compoundJoinTableColumns/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/14-orphanRemoval/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter10/14-orphanRemoval/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/14-orphanRemoval/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/15-mappingRelationshipState/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/15-mappingRelationshipState/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/16-multipleTables/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/16-multipleTables/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMP; 2 | DROP TABLE EMP_ADDRESS; 3 | 4 | CREATE TABLE EMP (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 5 | CREATE TABLE EMP_ADDRESS (EMP_ID INTEGER NOT NULL, STREET VARCHAR(255), 6 | CITY VARCHAR(255), STATE VARCHAR(255), ZIP_CODE VARCHAR(255), PRIMARY KEY (EMP_ID)); 7 | -------------------------------------------------------------------------------- /examples/Chapter10/16-multipleTables/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/17-embeddedObjectsMultipleTables/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/17-embeddedObjectsMultipleTables/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMP; 2 | DROP TABLE EMP_ADDRESS; 3 | 4 | CREATE TABLE EMP (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 5 | CREATE TABLE EMP_ADDRESS (EMP_ID INTEGER NOT NULL, STREET VARCHAR(255), 6 | CITY VARCHAR(255), STATE VARCHAR(255), ZIP_CODE VARCHAR(255), PRIMARY KEY (EMP_ID)); 7 | -------------------------------------------------------------------------------- /examples/Chapter10/17-embeddedObjectsMultipleTables/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/18-multipleTableCompoundPrimaryKey/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/18-multipleTableCompoundPrimaryKey/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/19-singleTableInheritance/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/19-singleTableInheritance/src/model/examples/model/CachedEntity.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public abstract class CachedEntity { 4 | private long createTime; 5 | 6 | public CachedEntity() { 7 | createTime = System.currentTimeMillis(); 8 | } 9 | 10 | public long getCacheAge() { 11 | return System.currentTimeMillis() - createTime; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/Chapter10/19-singleTableInheritance/src/model/examples/model/CompanyEmployee.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.MappedSuperclass; 4 | 5 | @MappedSuperclass 6 | public abstract class CompanyEmployee extends Employee { 7 | private int vacation; 8 | 9 | public int getVacation() { 10 | return vacation; 11 | } 12 | 13 | public void setVacation(int vacation) { 14 | this.vacation = vacation; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/Chapter10/19-singleTableInheritance/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/20-joinedTableInheritance/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/20-joinedTableInheritance/src/model/examples/model/CachedEntity.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public abstract class CachedEntity { 4 | private long createTime; 5 | 6 | public CachedEntity() { 7 | createTime = System.currentTimeMillis(); 8 | } 9 | 10 | public long getCacheAge() { 11 | return System.currentTimeMillis() - createTime; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/Chapter10/20-joinedTableInheritance/src/model/examples/model/CompanyEmployee.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.MappedSuperclass; 4 | 5 | @MappedSuperclass 6 | public abstract class CompanyEmployee extends Employee { 7 | private int vacation; 8 | 9 | public int getVacation() { 10 | return vacation; 11 | } 12 | 13 | public void setVacation(int vacation) { 14 | this.vacation = vacation; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/Chapter10/20-joinedTableInheritance/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/21-tablePerConcreteClass/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/21-tablePerConcreteClass/src/model/examples/model/CachedEntity.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public abstract class CachedEntity { 4 | private long createTime; 5 | 6 | public CachedEntity() { 7 | createTime = System.currentTimeMillis(); 8 | } 9 | 10 | public long getCacheAge() { 11 | return System.currentTimeMillis() - createTime; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/Chapter10/21-tablePerConcreteClass/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/22-mixedInheritance/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter10/22-mixedInheritance/src/model/examples/model/CachedEntity.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public abstract class CachedEntity { 4 | private long createTime; 5 | 6 | public CachedEntity() { 7 | createTime = System.currentTimeMillis(); 8 | } 9 | 10 | public long getCacheAge() { 11 | return System.currentTimeMillis() - createTime; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/Chapter10/22-mixedInheritance/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/01-nativeQueries/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter11/01-nativeQueries/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/01-nativeQueries/src/model/examples/stateless/OrgStructure.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.List; 4 | 5 | public interface OrgStructure { 6 | public List findEmployeesReportingTo(int managerId); 7 | public List findAllEmployees(); 8 | } 9 | -------------------------------------------------------------------------------- /examples/Chapter11/01-nativeQueries/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/02-sqlInsertDelete/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/02-sqlInsertDelete/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE MESSAGE_LOG; 2 | 3 | CREATE TABLE MESSAGE_LOG (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 4 | MESSAGE VARCHAR(255), LOG_DTTM TIMESTAMP, PRIMARY KEY (ID)); 5 | -------------------------------------------------------------------------------- /examples/Chapter11/02-sqlInsertDelete/src/model/examples/stateless/Logger.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.List; 4 | 5 | public interface Logger { 6 | public void logMessage(String message); 7 | public void clearMessageLog(); 8 | public List findAllMessages(); 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/02-sqlInsertDelete/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/03-sqlResultSetMappings/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/03-sqlResultSetMappings/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/04-idClassResultMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/04-idClassResultMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/05-embeddedIdResultMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/05-embeddedIdResultMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/06-inheritanceResultMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/06-inheritanceResultMapping/src/model/examples/model/CachedEntity.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public abstract class CachedEntity { 4 | private long createTime; 5 | 6 | public CachedEntity() { 7 | createTime = System.currentTimeMillis(); 8 | } 9 | 10 | public long getCacheAge() { 11 | return System.currentTimeMillis() - createTime; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/Chapter11/06-inheritanceResultMapping/src/model/examples/model/CompanyEmployee.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.MappedSuperclass; 4 | 5 | @MappedSuperclass 6 | public abstract class CompanyEmployee extends Employee { 7 | private int vacation; 8 | 9 | public int getVacation() { 10 | return vacation; 11 | } 12 | 13 | public void setVacation(int vacation) { 14 | this.vacation = vacation; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/Chapter11/06-inheritanceResultMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/07-constructorResultMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/07-constructorResultMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/buildsproc.bat: -------------------------------------------------------------------------------- 1 | javac examples\stateless\Sproc.java 2 | jar cvf sproc.jar examples\stateless\*.class 3 | -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/connect.txt: -------------------------------------------------------------------------------- 1 | connect 'jdbc:derby://localhost:1527/storedProc;create=true'; 2 | -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/derby.log: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------- 2 | Mon Nov 04 14:59:20 EST 2013: Shutting down Derby engine 3 | ---------------------------------------------------------------- 4 | -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/examples/model/EmployeeDetails.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public class EmployeeDetails { 4 | private String name; 5 | private long salary; 6 | private String deptName; 7 | 8 | public EmployeeDetails(String name, long salary, String deptName) { 9 | this.name = name; 10 | this.salary = salary; 11 | this.deptName = deptName; 12 | } 13 | 14 | public String toString() { 15 | return "EmployeeDetails name: " + name + 16 | ", salary: " + salary + 17 | ", deptName: " + deptName; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/examples/stateless/Sproc.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-jpa-2-in-java-ee-8/f56e599b79cc8a216c135ac868a692d9022c2e7a/examples/Chapter11/08-storedProc/src/model/examples/stateless/Sproc.class -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/hello.txt: -------------------------------------------------------------------------------- 1 | create procedure hello( INOUT name varchar(50)) 2 | parameter style java 3 | language java 4 | reads sql data 5 | dynamic result sets 0 6 | external name 'examples.stateless.Sproc.sayHello'; -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/ij.txt: -------------------------------------------------------------------------------- 1 | connect 'jdbc:derby://localhost:1527/storedProc;create=true'; 2 | 3 | call sqlj.install_jar('sproc.jar', 'mySproc',0); 4 | 5 | create procedure app.readEmps(param1 integer) 6 | parameter style java 7 | language java 8 | reads sql data 9 | dynamic result sets 1 10 | external name 'examples.stateless.Sproc.selectEmps'; -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/install.txt: -------------------------------------------------------------------------------- 1 | call sqlj.install_jar('c:\derby\sproc.jar', 'APP.SPROCS',0); 2 | call sqlj.replace_jar('c:\derby\sproc.jar', 'APP.SPROCS'); 3 | -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/src/model/sproc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-jpa-2-in-java-ee-8/f56e599b79cc8a216c135ac868a692d9022c2e7a/examples/Chapter11/08-storedProc/src/model/sproc.jar -------------------------------------------------------------------------------- /examples/Chapter11/08-storedProc/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/09-namedEntityGraphBasic/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/09-namedEntityGraphBasic/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/10-namedEntityGraphSubgraphs/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/10-namedEntityGraphSubgraphs/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/10-namedEntityGraphSubgraphs/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/10-namedEntityGraphSubgraphs/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/11-namedEntityGraphMultipleDefs/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/11-namedEntityGraphMultipleDefs/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/11-namedEntityGraphMultipleDefs/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/11-namedEntityGraphMultipleDefs/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/12-namedEntityGraphInheritance/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/12-namedEntityGraphInheritance/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/12-namedEntityGraphInheritance/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qaRating; 10 | 11 | public int getQaRating() { return qaRating; } 12 | public void setQaRating(int rating) { this.qaRating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qaRating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/12-namedEntityGraphInheritance/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/13-namedEntityGraphRootInheritance/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/13-namedEntityGraphRootInheritance/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/13-namedEntityGraphRootInheritance/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/13-namedEntityGraphRootInheritance/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/14-namedEntityGraphMapKey/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/14-namedEntityGraphMapKey/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/14-namedEntityGraphMapKey/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/14-namedEntityGraphMapKey/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/15-dynamicEntityGraphBasic/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/15-dynamicEntityGraphBasic/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/16-dynamicEntityGraphSubgraphs/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/16-dynamicEntityGraphSubgraphs/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/16-dynamicEntityGraphSubgraphs/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/16-dynamicEntityGraphSubgraphs/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/17-dynamicEntityGraphMultipleDefs/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/17-dynamicEntityGraphMultipleDefs/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/17-dynamicEntityGraphMultipleDefs/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/17-dynamicEntityGraphMultipleDefs/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/18-dynamicEntityGraphInheritance/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/18-dynamicEntityGraphInheritance/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/18-dynamicEntityGraphInheritance/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qaRating; 10 | 11 | public int getQaRating() { return qaRating; } 12 | public void setQaRating(int rating) { this.qaRating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qaRating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/18-dynamicEntityGraphInheritance/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/19-dynamicEntityGraphRootInheritance/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/19-dynamicEntityGraphRootInheritance/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/19-dynamicEntityGraphRootInheritance/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/19-dynamicEntityGraphRootInheritance/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/20-dynamicEntityGraphMapKey/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/20-dynamicEntityGraphMapKey/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/20-dynamicEntityGraphMapKey/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/20-dynamicEntityGraphMapKey/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/21-accessingEntityGraphs/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/21-accessingEntityGraphs/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/21-accessingEntityGraphs/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qaRating; 10 | 11 | public int getQaRating() { return qaRating; } 12 | public void setQaRating(int rating) { this.qaRating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qaRating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/21-accessingEntityGraphs/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/22-creatingEntityGraphFromExisting/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter11/22-creatingEntityGraphFromExisting/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter11/22-creatingEntityGraphFromExisting/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qaRating; 10 | 11 | public int getQaRating() { return qaRating; } 12 | public void setQaRating(int rating) { this.qaRating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qaRating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter11/22-creatingEntityGraphFromExisting/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/01-lifecycleCallbacks/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/01-lifecycleCallbacks/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)); -------------------------------------------------------------------------------- /examples/Chapter12/01-lifecycleCallbacks/src/model/examples/model/NameValidator.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.PrePersist; 4 | 5 | public class NameValidator { 6 | static final int MAX_NAME_LEN = 40; 7 | 8 | @PrePersist 9 | public void validate(NamedEntity obj) { 10 | System.out.println("NameValidator.validate called on employee name: " + obj.getName()); 11 | if (obj.getName().length() > MAX_NAME_LEN) 12 | throw new ValidationException("Identifier out of range"); 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter12/01-lifecycleCallbacks/src/model/examples/model/NamedEntity.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public interface NamedEntity { 4 | public String getName(); 5 | } 6 | 7 | -------------------------------------------------------------------------------- /examples/Chapter12/01-lifecycleCallbacks/src/model/examples/model/ValidationException.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public class ValidationException extends RuntimeException { 4 | public ValidationException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter12/01-lifecycleCallbacks/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/02-lifecycleCallbackInheritance/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/02-lifecycleCallbackInheritance/src/model/examples/model/EmployeeAudit.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.PostPersist; 4 | 5 | public class EmployeeAudit { 6 | @PostPersist 7 | public void auditNewHire(CompanyEmployee emp) { 8 | System.out.println("EmployeeAudit.auditNewHire called on employee: " + emp.getId()); 9 | //... 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /examples/Chapter12/02-lifecycleCallbackInheritance/src/model/examples/model/EmployeeType.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public enum EmployeeType { 4 | FULL_TIME_EMPLOYEE, 5 | PART_TIME_EMPLOYEE, 6 | CONTRACT_EMPLOYEE 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter12/02-lifecycleCallbackInheritance/src/model/examples/model/LongNameValidator.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.PrePersist; 4 | 5 | public class LongNameValidator { 6 | @PrePersist public void validateLongName(NamedEntity obj) { 7 | System.out.println("LongNameValidator.validate called on employee: " + obj.getName()); 8 | //... 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter12/02-lifecycleCallbackInheritance/src/model/examples/model/NameValidator.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.PrePersist; 4 | 5 | public class NameValidator { 6 | @PrePersist 7 | public void validate(NamedEntity obj) { 8 | System.out.println("NameValidator.validate called on employee: " + obj.getName()); 9 | //... 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /examples/Chapter12/02-lifecycleCallbackInheritance/src/model/examples/model/NamedEntity.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public interface NamedEntity { 4 | public String getName(); 5 | } 6 | 7 | -------------------------------------------------------------------------------- /examples/Chapter12/02-lifecycleCallbackInheritance/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/03-constraints/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/03-constraints/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/04-validatorInjection/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/04-validatorInjection/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/05-constraintGroups/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/05-constraintGroups/src/model/examples/model/FullTime.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.validation.groups.Default; 4 | 5 | public interface FullTime extends Default { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter12/05-constraintGroups/src/model/examples/model/PartTime.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.validation.groups.Default; 4 | 5 | public interface PartTime extends Default { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter12/05-constraintGroups/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/06-constraintAnnotation/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/06-constraintAnnotation/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/07-validatingEntity/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/07-validatingEntity/src/model/examples/model/EmployeeInfo.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | 4 | import java.util.Date; 5 | 6 | import javax.persistence.Embeddable; 7 | import javax.persistence.Embedded; 8 | import javax.persistence.Temporal; 9 | import javax.persistence.TemporalType; 10 | 11 | import javax.validation.constraints.Past; 12 | 13 | @Embeddable 14 | public class EmployeeInfo { 15 | @Past 16 | @Temporal(TemporalType.DATE) 17 | private Date dob; 18 | @Embedded 19 | private PersonInfo spouse; 20 | } -------------------------------------------------------------------------------- /examples/Chapter12/07-validatingEntity/src/model/examples/model/PersonInfo.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public class PersonInfo { 7 | public int notUsed; 8 | } -------------------------------------------------------------------------------- /examples/Chapter12/07-validatingEntity/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/08-validationLifecycle/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/08-validationLifecycle/src/model/examples/model/Remove.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.validation.groups.Default; 4 | 5 | public interface Remove extends Default { 6 | 7 | } -------------------------------------------------------------------------------- /examples/Chapter12/08-validationLifecycle/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/09-entityRefresh/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter12/09-entityRefresh/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/09-entityRefresh/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, VACATIONDAYS INTEGER, MANAGER_ID INTEGER, 4 | CONSTRAINT MANAGER_FK FOREIGN KEY (MANAGER_ID) REFERENCES EMPLOYEE (ID), PRIMARY KEY (ID)); 5 | 6 | INSERT INTO EMPLOYEE (ID, NAME, SALARY, VACATIONDAYS) VALUES (4, 'Patrick', 55000, 15); -------------------------------------------------------------------------------- /examples/Chapter12/09-entityRefresh/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/10-entityRevert/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter12/10-entityRevert/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/10-entityRevert/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/11-readLocking/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter12/11-readLocking/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/11-readLocking/src/model/examples/model/SalaryReport.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public class SalaryReport { 4 | 5 | public void addDeptSalaryLine(int deptId, long deptTotal) { 6 | 7 | } 8 | 9 | public void addSummarySalaryLine(long total) { 10 | 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /examples/Chapter12/11-readLocking/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/12-writeLocking/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter12/12-writeLocking/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/12-writeLocking/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/13-optimisticLockRecovery/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/13-optimisticLockRecovery/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, VERSION INTEGER, NAME VARCHAR(255), SALARY BIGINT, 4 | VACATIONDAYS INTEGER, PRIMARY KEY (ID)); -------------------------------------------------------------------------------- /examples/Chapter12/13-optimisticLockRecovery/src/model/examples/model/ChangeCollisionException.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.ejb.ApplicationException; 4 | 5 | @ApplicationException 6 | public class ChangeCollisionException extends RuntimeException { 7 | public ChangeCollisionException() { super(); } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /examples/Chapter12/13-optimisticLockRecovery/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/14-pessWriteLocking/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/14-pessWriteLocking/src/model/examples/model/ChangeCollisionException.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.ejb.ApplicationException; 4 | 5 | @ApplicationException 6 | public class ChangeCollisionException extends RuntimeException { 7 | public ChangeCollisionException() { super(); } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /examples/Chapter12/14-pessWriteLocking/src/model/examples/model/EmployeeStatus.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public enum EmployeeStatus { 4 | 5 | PROBATION, 6 | JUNIOR, 7 | CONSULTING, 8 | SENIOR 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter12/14-pessWriteLocking/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/15-cacheModeProperties/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter12/15-cacheModeProperties/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter13/xmlMappings/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter13/xmlMappings/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter13/xmlMappings/src/model/examples/model/CompanyEmployee.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public abstract class CompanyEmployee extends Employee { 4 | 5 | private int vacation; 6 | 7 | public int getVacation() { 8 | return vacation; 9 | } 10 | 11 | public void setVacation(int vacation) { 12 | this.vacation = vacation; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /examples/Chapter13/xmlMappings/src/model/examples/model/PartTimeEmployee.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public class PartTimeEmployee extends CompanyEmployee { 4 | 5 | private float hourlyRate; 6 | 7 | public float getHourlyRate() { 8 | return hourlyRate; 9 | } 10 | 11 | public void setHourlyRate(float hourlyRate) { 12 | this.hourlyRate = hourlyRate; 13 | } 14 | 15 | public String toString() { 16 | return "PartTimeEmployee(id=" + getId() + ", name=" + getName() + 17 | ", vacation=" + getVacation() + ", rate=" + getHourlyRate() + ")"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/Chapter13/xmlMappings/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.List; 4 | 5 | import javax.ejb.Stateless; 6 | import javax.persistence.EntityManager; 7 | import javax.persistence.PersistenceContext; 8 | 9 | import examples.model.Employee; 10 | 11 | @Stateless 12 | public class EmployeeService { 13 | @PersistenceContext(unitName="EmployeeService") 14 | protected EntityManager em; 15 | 16 | public List findAllEmployees() { 17 | return em.createNamedQuery("Employee.findAll") 18 | .getResultList(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/Chapter13/xmlMappings/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/00-splittingFiles/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/00-splittingFiles/etc/persistence/META-INF/employee_service_queries.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | SELECT e FROM Employee e 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/Chapter14/00-splittingFiles/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/01-ejbJarPackaging/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/01-ejbJarPackaging/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/02-externalJarPackaging/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/02-externalJarPackaging/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/03-webInfClassesPackaging/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/03-webInfClassesPackaging/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/04-persistenceArchivePackaging/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/04-persistenceArchivePackaging/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/04z-schemaGenCreateTarget/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/04z-schemaGenCreateTarget/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/05-schemaUniqueConstraints/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/05-schemaUniqueConstraints/etc/META-INF/application.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | schemaUniqueConstraints 4 | 5 | schemaUniqueConstraints.jar 6 | 7 | -------------------------------------------------------------------------------- /examples/Chapter14/05-schemaUniqueConstraints/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | public interface EmployeeService { 4 | public void emptySessionBean(); 5 | } 6 | -------------------------------------------------------------------------------- /examples/Chapter14/05-schemaUniqueConstraints/src/model/examples/stateless/EmployeeServiceBean.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.Stateless; 4 | import javax.persistence.EntityManager; 5 | import javax.persistence.PersistenceContext; 6 | 7 | @Stateless 8 | public class EmployeeServiceBean implements EmployeeService { 9 | @PersistenceContext(unitName="EmployeeService") 10 | private EntityManager em; 11 | public void emptySessionBean() {} 12 | } 13 | 14 | -------------------------------------------------------------------------------- /examples/Chapter14/05-schemaUniqueConstraints/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/06-schemaUniqueConstraints2/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/06-schemaUniqueConstraints2/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/07-schemaNullConstraints/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/07-schemaNullConstraints/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/08-schemaStringBasedColumns/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/08-schemaStringBasedColumns/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/09-schemaFloatingPointColumn/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/09-schemaFloatingPointColumn/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/10-schemaColumnDefinition/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter14/10-schemaColumnDefinition/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/01-testingEntities/TEST-examples.stateless.DepartmentTest.txt: -------------------------------------------------------------------------------- 1 | Testsuite: examples.stateless.DepartmentTest 2 | Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.049 sec 3 | 4 | Testcase: testValidDepartmentId took 0.004 sec 5 | Testcase: testDepartmentIdInvalidLength took 0.001 sec 6 | Testcase: testDepartmentIdCase took 0 sec 7 | -------------------------------------------------------------------------------- /examples/Chapter15/01-testingEntities/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/02-testingEntitiesInComponents/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/02-testingEntitiesInComponents/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(int id, String name, long salary); 9 | public void removeEmployee(int id); 10 | public Employee findEmployee(int id); 11 | public Collection findAllEmployees(); 12 | } 13 | -------------------------------------------------------------------------------- /examples/Chapter15/02-testingEntitiesInComponents/src/model/examples/stateless/Vacation.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | public interface Vacation { 4 | public int getYearsOfService(int empId); 5 | } 6 | -------------------------------------------------------------------------------- /examples/Chapter15/03-emTesting/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE USER_DB; 2 | 3 | CREATE TABLE USER_DB (NAME VARCHAR(255) NOT NULL, PASSWORD VARCHAR(255), PRIMARY KEY (NAME)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter15/03-emTesting/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/03-emTesting/src/model/examples/stateless/UserService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import examples.model.User; 4 | 5 | public interface UserService { 6 | public User authenticate(String userId, String password); 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter15/04-xmlOverrides/etc/persistence/META-INF/derby-overrides.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/Chapter15/04-xmlOverrides/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE PHONE; 2 | DROP TABLE ID_GEN; 3 | 4 | CREATE TABLE PHONE (ID INTEGER NOT NULL, NUMBER VARCHAR(255), TYPE VARCHAR(255), PRIMARY KEY (ID)); 5 | CREATE TABLE ID_GEN (SEQ_NAME VARCHAR(80), SEQ_COUNT INTEGER, PRIMARY KEY (SEQ_NAME)); 6 | 7 | INSERT INTO ID_GEN (SEQ_NAME, SEQ_COUNT) VALUES ('PhoneId', 0); 8 | -------------------------------------------------------------------------------- /examples/Chapter15/04-xmlOverrides/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/04-xmlOverrides/src/model/examples/stateless/PhoneService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import examples.model.Phone; 4 | 5 | public interface PhoneService { 6 | public Phone createPhone(Phone phone); 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter15/05-minimizingDBConnections/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE USER_DB; 2 | 3 | CREATE TABLE USER_DB (NAME VARCHAR(255) NOT NULL, PASSWORD VARCHAR(255), PRIMARY KEY (NAME)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter15/05-minimizingDBConnections/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/05-minimizingDBConnections/src/model/examples/stateless/UserService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import examples.model.User; 4 | 5 | public interface UserService { 6 | public User authenticate(String userId, String password); 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter15/06-containerManagedTxTesting/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | 4 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), STARTDATE DATE, SALARY BIGINT, 6 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID), 7 | CONSTRAINT DEPARTMENT_FK FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID)); -------------------------------------------------------------------------------- /examples/Chapter15/06-containerManagedTxTesting/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/06-containerManagedTxTesting/src/model/examples/stateless/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.List; 4 | 5 | public interface DepartmentService { 6 | public List assignEmployeeToDepartment(int deptId, int empId); 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter15/07-beanManagedTxTesting/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | 4 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), STARTDATE DATE, SALARY BIGINT, 6 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID), 7 | CONSTRAINT DEPARTMENT_FK FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID)); -------------------------------------------------------------------------------- /examples/Chapter15/07-beanManagedTxTesting/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/07-beanManagedTxTesting/src/model/examples/stateless/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.List; 4 | 5 | public interface DepartmentService { 6 | public List assignEmployeeToDepartment(int deptId, int empId); 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter15/08-nullUserTxTesting/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | 4 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), STARTDATE DATE, SALARY BIGINT, 6 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID), 7 | CONSTRAINT DEPARTMENT_FK FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID)); -------------------------------------------------------------------------------- /examples/Chapter15/08-nullUserTxTesting/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/08-nullUserTxTesting/src/model/examples/stateless/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.List; 4 | 5 | public interface DepartmentService { 6 | public List assignEmployeeToDepartment(int deptId, int empId); 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter15/08-nullUserTxTesting/src/test/examples/stateless/NullUserTransaction.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.transaction.Status; 4 | import javax.transaction.UserTransaction; 5 | 6 | public class NullUserTransaction implements UserTransaction { 7 | public void begin() {} 8 | public void commit() {} 9 | public void rollback() {} 10 | public void setRollbackOnly() {} 11 | public int getStatus() { 12 | return Status.STATUS_NO_TRANSACTION; 13 | } 14 | public void setTransactionTimeout(int timeout) {} 15 | } 16 | 17 | -------------------------------------------------------------------------------- /examples/Chapter15/09-containerManagedEmTesting/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE LOGRECORD; 3 | 4 | CREATE TABLE LOGRECORD (ID INTEGER NOT NULL, EMPNO INTEGER, ACTION VARCHAR(255), PRIMARY KEY (ID)); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), STARTDATE DATE, SALARY BIGINT); -------------------------------------------------------------------------------- /examples/Chapter15/09-containerManagedEmTesting/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/09-containerManagedEmTesting/src/model/examples/stateless/AuditService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | public interface AuditService { 4 | public void logTransaction(int empNo, String action); 5 | } 6 | -------------------------------------------------------------------------------- /examples/Chapter15/09-containerManagedEmTesting/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import examples.model.Employee; 4 | 5 | public interface EmployeeService { 6 | public void createEmployee(Employee emp); 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter15/10-springTesting/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), STARTDATE DATE, SALARY BIGINT); -------------------------------------------------------------------------------- /examples/Chapter15/10-springTesting/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter15/10-springTesting/src/model/examples/stateless/AuditService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | public interface AuditService { 4 | public void logTransaction(int empNo, String action); 5 | } 6 | -------------------------------------------------------------------------------- /examples/Chapter15/10-springTesting/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import examples.model.Employee; 4 | 5 | public interface EmployeeService { 6 | public void createEmployee(Employee emp); 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter2/employeeService/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, NUMBER INTEGER, PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter2/employeeService/lib/eclipselink.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-jpa-2-in-java-ee-8/f56e599b79cc8a216c135ac868a692d9022c2e7a/examples/Chapter2/employeeService/lib/eclipselink.jar -------------------------------------------------------------------------------- /examples/Chapter2/employeeService/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant run 2 | pause -------------------------------------------------------------------------------- /examples/Chapter2/employeeService/runInteractive.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant interactive_client 2 | pause 3 | -------------------------------------------------------------------------------- /examples/Chapter3/01-slsbExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/01-slsbExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/01-slsbExample/src/model/examples/stateless/HelloService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | public interface HelloService { 4 | public String sayHello(String name); 5 | } 6 | 7 | -------------------------------------------------------------------------------- /examples/Chapter3/01-slsbExample/src/model/examples/stateless/HelloServiceBean.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.Stateless; 4 | 5 | @Stateless 6 | public class HelloServiceBean implements HelloService { 7 | public String sayHello(String name) { 8 | return "Hello, " + name; 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /examples/Chapter3/01-slsbExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/02-slsbNoInterfaceExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/02-slsbNoInterfaceExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/02-slsbNoInterfaceExample/src/model/examples/stateless/HelloService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.Stateless; 4 | 5 | @Stateless 6 | public class HelloService { 7 | public String sayHello(String name) { 8 | return "Hello, " + name; 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /examples/Chapter3/02-slsbNoInterfaceExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/03-slsbLifecycleExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/03-slsbLifecycleExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/03-slsbLifecycleExample/src/model/examples/stateless/LoggerBean.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.annotation.PostConstruct; 4 | import javax.ejb.Stateless; 5 | import java.util.logging.Logger; 6 | 7 | @Stateless 8 | public class LoggerBean { 9 | private Logger logger; 10 | 11 | @PostConstruct 12 | private void init() { 13 | logger = Logger.getLogger("notification"); 14 | } 15 | 16 | public void logMessage(String message) { 17 | logger.info(message); 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /examples/Chapter3/03-slsbLifecycleExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/04-sfsbExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/04-sfsbExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/04-sfsbExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/05-sfsbLifecycleExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/05-sfsbLifecycleExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/05-sfsbLifecycleExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/06-singletonExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/06-singletonExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/06-singletonExample/src/model/examples/singleton/HitCounter.java: -------------------------------------------------------------------------------- 1 | package model.examples.singleton; 2 | 3 | import javax.ejb.Singleton; 4 | 5 | @Singleton 6 | public class HitCounter { 7 | int count; 8 | 9 | public void increment() { ++count; } 10 | 11 | public int getCount() { return count; } 12 | 13 | public void reset() { count = 0; } 14 | } -------------------------------------------------------------------------------- /examples/Chapter3/06-singletonExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/07-servletExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/07-servletExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/07-servletExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/08-dependencyLookup/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/08-dependencyLookup/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/08-dependencyLookup/src/model/examples/stateless/AuditService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.Stateless; 4 | 5 | @Stateless 6 | public class AuditService { 7 | public String audit() { 8 | return "Audit performed."; 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /examples/Chapter3/08-dependencyLookup/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/09-ejbContextLookup/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/09-ejbContextLookup/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/09-ejbContextLookup/src/model/examples/stateless/AuditService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.Stateless; 4 | 5 | @Stateless 6 | public class AuditService { 7 | public String audit() { 8 | return "Audit performed."; 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /examples/Chapter3/09-ejbContextLookup/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/10-fieldInjection/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/10-fieldInjection/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/10-fieldInjection/src/model/examples/stateless/AuditService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.Stateless; 4 | 5 | @Stateless 6 | public class AuditService { 7 | public String audit() { 8 | return "Audit performed."; 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /examples/Chapter3/10-fieldInjection/src/model/examples/stateless/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.EJB; 4 | import javax.ejb.Stateless; 5 | 6 | @Stateless 7 | public class DepartmentService { 8 | @EJB AuditService audit; 9 | 10 | public String performAudit() { 11 | return audit.audit(); 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/10-fieldInjection/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/11-setterInjection/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/11-setterInjection/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/11-setterInjection/src/model/examples/stateless/AuditService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.Stateless; 4 | 5 | @Stateless 6 | public class AuditService { 7 | public String audit() { 8 | return "Audit performed."; 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /examples/Chapter3/11-setterInjection/src/model/examples/stateless/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.EJB; 4 | import javax.ejb.Stateless; 5 | 6 | @Stateless 7 | public class DepartmentService { 8 | private AuditService audit; 9 | 10 | @EJB 11 | public void setAuditService(AuditService audit) { 12 | this.audit = audit; 13 | } 14 | 15 | public String performAudit() { 16 | return audit.audit(); 17 | } 18 | 19 | // ... 20 | } 21 | 22 | -------------------------------------------------------------------------------- /examples/Chapter3/11-setterInjection/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/12-cdiExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter3/12-cdiExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/12-cdiExample/src/model/examples/beans/AuditService.java: -------------------------------------------------------------------------------- 1 | package examples.beans; 2 | 3 | import javax.enterprise.context.ApplicationScoped; 4 | 5 | @ApplicationScoped 6 | public class AuditService { 7 | int auditCount = 1; 8 | 9 | public String audit() { 10 | return "Audit performed." + " Audit # - " + auditCount++; 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /examples/Chapter3/12-cdiExample/src/model/examples/beans/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.beans; 2 | 3 | import javax.enterprise.context.Dependent; 4 | import javax.inject.Inject; 5 | import javax.persistence.EntityManager; 6 | 7 | @Dependent 8 | public class DepartmentService { 9 | @Inject AuditService audit; 10 | 11 | @Inject @EmployeeEM 12 | private EntityManager empEM; 13 | 14 | public String performAudit() { 15 | return audit.audit(); 16 | } 17 | 18 | // ... 19 | } 20 | 21 | -------------------------------------------------------------------------------- /examples/Chapter3/12-cdiExample/src/model/examples/beans/EmProducers.java: -------------------------------------------------------------------------------- 1 | package examples.beans; 2 | 3 | import javax.enterprise.context.RequestScoped; 4 | import javax.enterprise.inject.Produces; 5 | import javax.inject.Inject; 6 | import javax.persistence.PersistenceContext; 7 | import javax.persistence.EntityManager; 8 | 9 | @RequestScoped 10 | public class EmProducers { 11 | @Produces @EmployeeEM 12 | @PersistenceContext(unitName="Employee") 13 | private EntityManager em1; 14 | } 15 | 16 | 17 | -------------------------------------------------------------------------------- /examples/Chapter3/12-cdiExample/src/model/examples/beans/EmployeeEM.java: -------------------------------------------------------------------------------- 1 | package examples.beans; 2 | 3 | import static java.lang.annotation.ElementType.*; 4 | import static java.lang.annotation.RetentionPolicy.*; 5 | 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.Target; 8 | import javax.inject.Qualifier; 9 | 10 | @Qualifier 11 | @Target({METHOD, FIELD, PARAMETER, TYPE}) 12 | @Retention(RUNTIME) 13 | public @interface EmployeeEM { } 14 | -------------------------------------------------------------------------------- /examples/Chapter3/12-cdiExample/src/model/examples/beans/Secure.java: -------------------------------------------------------------------------------- 1 | package examples.beans; 2 | 3 | import static java.lang.annotation.ElementType.*; 4 | import static java.lang.annotation.RetentionPolicy.*; 5 | 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.Target; 8 | import javax.inject.Qualifier; 9 | 10 | @Qualifier 11 | @Target({METHOD, FIELD, PARAMETER, TYPE}) 12 | @Retention(RUNTIME) 13 | public @interface Secure { } 14 | -------------------------------------------------------------------------------- /examples/Chapter3/12-cdiExample/src/model/examples/beans/SecureDepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.beans; 2 | 3 | import javax.enterprise.context.Dependent; 4 | import javax.inject.Inject; 5 | import javax.persistence.EntityManager; 6 | 7 | @Dependent 8 | @Secure 9 | public class SecureDepartmentService extends DepartmentService { 10 | @Inject AuditService audit; 11 | 12 | @Inject @EmployeeEM 13 | private EntityManager empEM; 14 | 15 | public String performAudit() { 16 | return "Secure " + audit.audit(); 17 | } 18 | 19 | // ... 20 | } 21 | 22 | -------------------------------------------------------------------------------- /examples/Chapter3/12-cdiExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/13-cmtExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/13-cmtExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/13-cmtExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/14-txInterceptor/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/14-txInterceptor/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/14-txInterceptor/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/15-userTxExample/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/Chapter3/15-userTxExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/15-userTxExample/src/model/examples/stateless/ProjectService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | public interface ProjectService { 4 | public void assignEmployeeToProject(int projectId, int empId); 5 | public void updateProjectStatistics(); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /examples/Chapter3/15-userTxExample/src/model/examples/stateless/ProjectServiceBean.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import javax.ejb.Stateless; 4 | 5 | @Stateless 6 | public class ProjectServiceBean implements ProjectService { 7 | public void assignEmployeeToProject(int projectId, int empId) { 8 | // ... 9 | System.out.println("Adding Employee to Project..."); 10 | } 11 | 12 | public void updateProjectStatistics() { 13 | // ... 14 | System.out.println("Updating Project Stats..."); 15 | } 16 | 17 | // ... 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter3/15-userTxExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/16-employeeService/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter3/16-employeeService/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter3/16-employeeService/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/01-fieldAccess/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter4/01-fieldAccess/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/01-fieldAccess/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter4/01-fieldAccess/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(int id, String name, long salary); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/01-fieldAccess/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/02-propertyAccess/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/02-propertyAccess/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter4/02-propertyAccess/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(int id, String name, long salary); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/02-propertyAccess/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/03-mixedAccess/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter4/03-mixedAccess/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/03-mixedAccess/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, PHONE VARCHAR(255), NAME VARCHAR(255), WAGE BIGINT, PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter4/03-mixedAccess/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(int id, String name, long salary); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/03-mixedAccess/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/04-customTableSchema/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/04-customTableSchema/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE HR.EMP; 2 | 3 | CREATE TABLE HR.EMP (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter4/04-customTableSchema/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(int id, String name, long salary); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/04-customTableSchema/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/05-customColumnMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/05-customColumnMapping/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (EMP_ID INTEGER NOT NULL, NAME VARCHAR(255), SAL BIGINT, COMM VARCHAR(255), PRIMARY KEY (EMP_ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter4/05-customColumnMapping/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(int id, String name, long salary, String comments); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/05-customColumnMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/06-lobMapping/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter4/06-lobMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/06-lobMapping/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PIC BLOB, PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter4/06-lobMapping/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(int id, String name, long salary, byte[] pic); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/06-lobMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/07-enumMapping/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter4/07-enumMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/07-enumMapping/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, TYPE INTEGER, PREVIOUSTYPE VARCHAR(64), PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter4/07-enumMapping/src/model/examples/model/EmployeeType.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public enum EmployeeType { 4 | FULL_TIME_EMPLOYEE, 5 | PART_TIME_EMPLOYEE, 6 | CONTRACT_EMPLOYEE 7 | } 8 | -------------------------------------------------------------------------------- /examples/Chapter4/07-enumMapping/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | import examples.model.EmployeeType; 7 | 8 | public interface EmployeeService { 9 | public Employee createEmployee(int id, String name, long salary, EmployeeType type); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/07-enumMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/08-temporalMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/08-temporalMapping/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, DOB DATE, S_DATE DATE, PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter4/08-temporalMapping/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Calendar; 4 | import java.util.Collection; 5 | 6 | import examples.model.Employee; 7 | 8 | public interface EmployeeService { 9 | public Employee createEmployee(int id, String name, long salary, Calendar dob); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/08-temporalMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/09-transientMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/09-transientMapping/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 4 | 5 | -------------------------------------------------------------------------------- /examples/Chapter4/09-transientMapping/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(int id, String name, long salary); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/09-transientMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/10-autoIdGeneration/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/10-autoIdGeneration/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE SEQUENCE; 3 | 4 | CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(64), SEQ_COUNT INTEGER); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 6 | 7 | INSERT INTO SEQUENCE (SEQ_NAME, SEQ_COUNT ) VALUES('SEQ_GEN',1); 8 | -------------------------------------------------------------------------------- /examples/Chapter4/10-autoIdGeneration/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/10-autoIdGeneration/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/11-tableIdGeneration/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/11-tableIdGeneration/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary, 9 | String street, String city, String state, String zip); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/11-tableIdGeneration/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/12-sequenceIdGeneration/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/12-sequenceIdGeneration/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP SEQUENCE Emp_Seq; 3 | 4 | CREATE TABLE EMPLOYEE (ID NUMBER NOT NULL, NAME VARCHAR(255), SALARY NUMBER, PRIMARY KEY (ID)); 5 | 6 | CREATE SEQUENCE Emp_Seq MINVALUE 1 START WITH 100 INCREMENT BY 50; 7 | 8 | -------------------------------------------------------------------------------- /examples/Chapter4/12-sequenceIdGeneration/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/12-sequenceIdGeneration/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/13-dbIdentityIdGeneration/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/13-dbIdentityIdGeneration/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 4 | NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 5 | 6 | -------------------------------------------------------------------------------- /examples/Chapter4/13-dbIdentityIdGeneration/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/13-dbIdentityIdGeneration/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/14-manyToOne/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter4/14-manyToOne/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/14-manyToOne/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | 4 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 5 | NAME VARCHAR(255), PRIMARY KEY (ID)); 6 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 7 | NAME VARCHAR(255), SALARY BIGINT, 8 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID), 9 | CONSTRAINT DEPT_FK FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID)); 10 | 11 | -------------------------------------------------------------------------------- /examples/Chapter4/14-manyToOne/src/model/examples/stateless/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Department; 6 | 7 | public interface DepartmentService { 8 | public Department createDepartment(String name); 9 | public Collection findAllDepartments(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/14-manyToOne/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee setEmployeeDepartment(int empId, int deptId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/14-manyToOne/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/15-joinColumn/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter4/15-joinColumn/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/15-joinColumn/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | 4 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 5 | NAME VARCHAR(255), PRIMARY KEY (ID)); 6 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 7 | NAME VARCHAR(255), SALARY BIGINT, 8 | DEPT_ID INTEGER, PRIMARY KEY (ID), 9 | CONSTRAINT DEPT_FK FOREIGN KEY (DEPT_ID) REFERENCES DEPARTMENT (ID)); 10 | 11 | -------------------------------------------------------------------------------- /examples/Chapter4/15-joinColumn/src/model/examples/stateless/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Department; 6 | 7 | public interface DepartmentService { 8 | public Department createDepartment(String name); 9 | public Collection findAllDepartments(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/15-joinColumn/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee setEmployeeDepartment(int empId, int deptId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/15-joinColumn/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/16-oneToOneUnidirectional/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/16-oneToOneUnidirectional/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee setEmployeeParkingSpace(int empId, int spaceId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/16-oneToOneUnidirectional/src/model/examples/stateless/ParkingSpaceService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.ParkingSpace; 6 | 7 | public interface ParkingSpaceService { 8 | public ParkingSpace createParkingSpace(int lot, String location); 9 | public Collection findAllParkingSpaces(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/16-oneToOneUnidirectional/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/17-oneToOneBidirectional/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/17-oneToOneBidirectional/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee setEmployeeParkingSpace(int empId, int spaceId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/17-oneToOneBidirectional/src/model/examples/stateless/ParkingSpaceService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.ParkingSpace; 6 | 7 | public interface ParkingSpaceService { 8 | public ParkingSpace createParkingSpace(int lot, String location); 9 | public Collection findAllParkingSpaces(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/17-oneToOneBidirectional/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/18-oneToOnePkMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/18-oneToOnePkMapping/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE PARKING_SPACE; 3 | 4 | CREATE TABLE PARKING_SPACE (ID INTEGER NOT NULL, LOT INTEGER, LOCATION VARCHAR(255), PRIMARY KEY (ID)); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 6 | 7 | -------------------------------------------------------------------------------- /examples/Chapter4/18-oneToOnePkMapping/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(int id, String name, long salary); 9 | public Collection findAllEmployees(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/18-oneToOnePkMapping/src/model/examples/stateless/ParkingSpaceService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | import examples.model.ParkingSpace; 7 | 8 | public interface ParkingSpaceService { 9 | public ParkingSpace createParkingSpace(Employee emp, int lot, String location); 10 | public Collection findAllParkingSpaces(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/18-oneToOnePkMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/19-oneToManyBidirectional/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/19-oneToManyBidirectional/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | 4 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 5 | NAME VARCHAR(255), PRIMARY KEY (ID)); 6 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 7 | NAME VARCHAR(255), SALARY BIGINT, 8 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID), 9 | CONSTRAINT DEPT_FK FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID)); 10 | 11 | -------------------------------------------------------------------------------- /examples/Chapter4/19-oneToManyBidirectional/src/model/examples/stateless/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Department; 6 | 7 | public interface DepartmentService { 8 | public Department createDepartment(String name); 9 | public Collection findAllDepartments(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/19-oneToManyBidirectional/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee setEmployeeDepartment(int empId, int deptId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/19-oneToManyBidirectional/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/20-oneToManyTargetEntity/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/20-oneToManyTargetEntity/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | 4 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 5 | NAME VARCHAR(255), PRIMARY KEY (ID)); 6 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 7 | NAME VARCHAR(255), SALARY BIGINT, 8 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID), 9 | CONSTRAINT DEPT_FK FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID)); 10 | 11 | -------------------------------------------------------------------------------- /examples/Chapter4/20-oneToManyTargetEntity/src/model/examples/stateless/DepartmentService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Department; 6 | 7 | public interface DepartmentService { 8 | public Department createDepartment(String name); 9 | public Collection findAllDepartments(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/20-oneToManyTargetEntity/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee setEmployeeDepartment(int empId, int deptId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/20-oneToManyTargetEntity/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/21-manyToManyBidirectional/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/21-manyToManyBidirectional/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee addEmployeeProject(int empId, int projId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/21-manyToManyBidirectional/src/model/examples/stateless/ProjectService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Project; 6 | 7 | public interface ProjectService { 8 | public Project createProject(String name); 9 | public Collection findAllProjects(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/21-manyToManyBidirectional/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/22-manyToManyJoinTable/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/22-manyToManyJoinTable/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee addEmployeeProject(int empId, int projId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/22-manyToManyJoinTable/src/model/examples/stateless/ProjectService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Project; 6 | 7 | public interface ProjectService { 8 | public Project createProject(String name); 9 | public Collection findAllProjects(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/22-manyToManyJoinTable/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/23-oneToManyUnidirectional/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/23-oneToManyUnidirectional/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee addEmployeePhone(int empId, int phoneId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/23-oneToManyUnidirectional/src/model/examples/stateless/PhoneService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Phone; 6 | 7 | public interface PhoneService { 8 | public Phone createPhone(String num, String type); 9 | public Collection findAllPhones(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/23-oneToManyUnidirectional/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/24-oneToOneLazy/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter4/24-oneToOneLazy/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/24-oneToOneLazy/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployee(String name, long salary); 9 | public Employee setEmployeeParkingSpace(int empId, int spaceId); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/24-oneToOneLazy/src/model/examples/stateless/ParkingSpaceService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.ParkingSpace; 6 | 7 | public interface ParkingSpaceService { 8 | public ParkingSpace createParkingSpace(int lot, String location); 9 | public Collection findAllParkingSpaces(); 10 | } 11 | -------------------------------------------------------------------------------- /examples/Chapter4/24-oneToOneLazy/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/25-embeddedObjects/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/25-embeddedObjects/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, STREET VARCHAR(255), CITY VARCHAR(255), STATE VARCHAR(255), ZIP_CODE VARCHAR(255), PRIMARY KEY (ID)); 3 | -------------------------------------------------------------------------------- /examples/Chapter4/25-embeddedObjects/src/model/examples/stateless/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import java.util.Collection; 4 | 5 | import examples.model.Employee; 6 | 7 | public interface EmployeeService { 8 | public Employee createEmployeeAndAddress(int id, String name, long salary, 9 | String street, String city, String state, String zip); 10 | public Collection findAllEmployees(); 11 | } 12 | -------------------------------------------------------------------------------- /examples/Chapter4/25-embeddedObjects/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/26-sharingEmbeddedObjects/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter4/26-sharingEmbeddedObjects/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE COMPANY; 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT, STREET VARCHAR(255), CITY VARCHAR(255), PROVINCE VARCHAR(255), POSTAL_CODE VARCHAR(255), PRIMARY KEY (ID)); 4 | CREATE TABLE COMPANY (ID INTEGER NOT NULL, STREET VARCHAR(255), CITY VARCHAR(255), STATE VARCHAR(255), ZIP_CODE VARCHAR(255), PRIMARY KEY (ID)); 5 | -------------------------------------------------------------------------------- /examples/Chapter4/26-sharingEmbeddedObjects/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/1-elementCollection/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/1-elementCollection/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE Employee_VACATIONBOOKINGS; 2 | DROP TABLE Employee_NICKNAMES; 3 | DROP TABLE EMPLOYEE; 4 | CREATE TABLE EMPLOYEE (ID INTEGER GENERATED ALWAYS AS IDENTITY NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 5 | CREATE TABLE Employee_VACATIONBOOKINGS (Employee_ID INTEGER NOT NULL, STARTDATE VARCHAR(255), DAYS INTEGER); 6 | CREATE TABLE Employee_NICKNAMES (Employee_ID INTEGER NOT NULL, NICKNAMES VARCHAR(255)); 7 | -------------------------------------------------------------------------------- /examples/Chapter5/1-elementCollection/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/10-embeddableKeyMapping/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/10-embeddableKeyMapping/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | CREATE TABLE EMPLOYEE (ID INTEGER GENERATED ALWAYS AS IDENTITY NOT NULL, F_NAME VARCHAR(255), L_NAME VARCHAR(255), SALARY BIGINT, 4 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID)); 5 | CREATE TABLE DEPARTMENT (ID INTEGER GENERATED ALWAYS AS IDENTITY NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)); 6 | ALTER TABLE EMPLOYEE ADD CONSTRAINT MPLOYEEDPARTMENTID FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID); 7 | -------------------------------------------------------------------------------- /examples/Chapter5/10-embeddableKeyMapping/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/11-manyToManyEmbeddableKeyOverride/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/11-manyToManyEmbeddableKeyOverride/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/12-elementCollectionMapKeyEntity/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/12-elementCollectionMapKeyEntity/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/13-untypedMaps/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter5/13-untypedMaps/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/13-untypedMaps/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/2-overrideCollectionTableColumn/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/2-overrideCollectionTableColumn/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE Employee_VACATION; 2 | DROP TABLE Employee_NICKNAMES; 3 | DROP TABLE EMPLOYEE; 4 | CREATE TABLE EMPLOYEE (ID INTEGER GENERATED ALWAYS AS IDENTITY NOT NULL, NAME VARCHAR(255), SALARY BIGINT, PRIMARY KEY (ID)); 5 | CREATE TABLE Employee_VACATION (EMP_ID INTEGER NOT NULL, STARTDATE VARCHAR(255), DAYS_ABS INTEGER); 6 | CREATE TABLE Employee_NICKNAMES (Employee_ID INTEGER NOT NULL, NICKNAME VARCHAR(255)); 7 | -------------------------------------------------------------------------------- /examples/Chapter5/2-overrideCollectionTableColumn/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/3-oneToManyList/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/3-oneToManyList/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 4 | NAME VARCHAR(255), PRIMARY KEY (ID)); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 6 | NAME VARCHAR(255), SALARY BIGINT, 7 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID), 8 | CONSTRAINT DEPT_FK FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID)); 9 | 10 | -------------------------------------------------------------------------------- /examples/Chapter5/3-oneToManyList/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/4-persistentlyOrderedList/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/4-persistentlyOrderedList/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE PRINTJOB; 2 | DROP TABLE PRINTQUEUE; 3 | CREATE TABLE PRINTJOB (ID INTEGER, QUEUE_NAME VARCHAR(255), PRINT_ORDER INTEGER, PRIMARY KEY (ID)); 4 | CREATE TABLE PRINTQUEUE (NAME VARCHAR(255), PRIMARY KEY (NAME)); 5 | ALTER TABLE PRINTJOB ADD CONSTRAINT JOB_QUEUE FOREIGN KEY (QUEUE_NAME) REFERENCES PRINTQUEUE (NAME); -------------------------------------------------------------------------------- /examples/Chapter5/4-persistentlyOrderedList/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/5-elementCollectionStringMap/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/5-elementCollectionStringMap/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/6-elementCollectionEnumMap/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/6-elementCollectionEnumMap/src/model/examples/model/PhoneType.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public enum PhoneType { 4 | Home, Mobile, Work 5 | } 6 | -------------------------------------------------------------------------------- /examples/Chapter5/6-elementCollectionEnumMap/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/7-oneToManyMap/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter5/7-oneToManyMap/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/7-oneToManyMap/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | CREATE TABLE EMPLOYEE (ID INTEGER GENERATED ALWAYS AS IDENTITY NOT NULL, NAME VARCHAR(255), SALARY BIGINT, 4 | CUB_ID VARCHAR(255), DEPARTMENT_ID INTEGER, PRIMARY KEY (ID)); 5 | CREATE TABLE DEPARTMENT (ID INTEGER GENERATED ALWAYS AS IDENTITY NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)); 6 | ALTER TABLE EMPLOYEE ADD CONSTRAINT MPLOYEEDPARTMENTID FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID); 7 | -------------------------------------------------------------------------------- /examples/Chapter5/7-oneToManyMap/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/8-manyToManyMap/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/8-manyToManyMap/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/9-oneToManyEntityAttributeKey/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter5/9-oneToManyEntityAttributeKey/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | CREATE TABLE EMPLOYEE (ID INTEGER GENERATED ALWAYS AS IDENTITY NOT NULL, NAME VARCHAR(255), SALARY BIGINT, 4 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID)); 5 | CREATE TABLE DEPARTMENT (ID INTEGER GENERATED ALWAYS AS IDENTITY NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)); 6 | ALTER TABLE EMPLOYEE ADD CONSTRAINT MPLOYEEDPARTMENTID FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID); 7 | -------------------------------------------------------------------------------- /examples/Chapter5/9-oneToManyEntityAttributeKey/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/01-txScopedEmExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/01-txScopedEmExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/02-extendedEmExample1/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/02-extendedEmExample1/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/03-extendedEmExample2/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/03-extendedEmExample2/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/04-extendedEmExample3/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/04-extendedEmExample3/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/05-applicationManagedSE/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/06-applicationManagedEE/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/06-applicationManagedEE/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE USER_DB; 2 | 3 | CREATE TABLE USER_DB (NAME VARCHAR(255) NOT NULL, PASSWORD VARCHAR(255), PRIMARY KEY (NAME)); 4 | 5 | INSERT INTO USER_DB (NAME, PASSWORD) VALUES ('Joan', 'foo'); 6 | INSERT INTO USER_DB (NAME, PASSWORD) VALUES ('Sarah', 'bar'); 7 | INSERT INTO USER_DB (NAME, PASSWORD) VALUES ('John', 'password'); 8 | INSERT INTO USER_DB (NAME, PASSWORD) VALUES ('Roberts', 'hello'); 9 | INSERT INTO USER_DB (NAME, PASSWORD) VALUES ('Peter', '1234'); -------------------------------------------------------------------------------- /examples/Chapter6/06-applicationManagedEE/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/07-txScopedPersistenceContext/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/07-txScopedPersistenceContext/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE LOGRECORD; 3 | 4 | CREATE TABLE LOGRECORD (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 5 | EMPNO INTEGER, ACTION VARCHAR(255), PRIMARY KEY (ID)); 6 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), STARTDATE DATE, SALARY BIGINT, PRIMARY KEY (ID)); 7 | -------------------------------------------------------------------------------- /examples/Chapter6/07-txScopedPersistenceContext/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/08-extendedPersistenceContext/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/08-extendedPersistenceContext/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/09-persistenceContextCollision/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/09-persistenceContextCollision/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/10-persistenceContextInheritance/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/10-persistenceContextInheritance/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/11-applicationManagedJTA/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/11-applicationManagedJTA/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/12-sharingApplicationManagedJTA/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/12-sharingApplicationManagedJTA/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), STARTDATE DATE, SALARY BIGINT, PRIMARY KEY (ID)); 4 | 5 | INSERT INTO EMPLOYEE (ID, NAME, SALARY) VALUES (1, 'Joan', 59000); 6 | INSERT INTO EMPLOYEE (ID, NAME, SALARY) VALUES (2, 'Sarah', 52000); 7 | INSERT INTO EMPLOYEE (ID, NAME, SALARY) VALUES (3, 'John', 55000); -------------------------------------------------------------------------------- /examples/Chapter6/12-sharingApplicationManagedJTA/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/13-unsyncPC/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter6/13-unsyncPC/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/13-unsyncPC/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE ORDERITEM; 2 | DROP TABLE CUSTOMERORDER; 3 | 4 | CREATE TABLE CUSTOMERORDER (ID INTEGER NOT NULL, PRIMARY KEY (ID)); 5 | CREATE TABLE ORDERITEM (ID INTEGER NOT NULL, NAME VARCHAR(255), QUANTITY INTEGER, ITEMS_KEY VARCHAR(255), ORDER_ID INTEGER, PRIMARY KEY (ID)); 6 | -------------------------------------------------------------------------------- /examples/Chapter6/13-unsyncPC/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/14-resourceLocalTxSE/run.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/15-resourceLocalTxEE/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/15-resourceLocalTxEE/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE LOGRECORD; 2 | 3 | CREATE TABLE LOGRECORD (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 4 | EMPNO INTEGER, ACTION VARCHAR(255), PRIMARY KEY (ID)); -------------------------------------------------------------------------------- /examples/Chapter6/15-resourceLocalTxEE/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/16-persistingWithRelationships/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/16-persistingWithRelationships/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE DEPARTMENT; 3 | 4 | CREATE TABLE DEPARTMENT (ID INTEGER NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), 6 | DEPARTMENT_ID INTEGER, PRIMARY KEY (ID), 7 | CONSTRAINT DEPARTMENT_FK FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT (ID)); 8 | 9 | INSERT INTO DEPARTMENT (ID, NAME) VALUES (1, 'Engineering'); 10 | INSERT INTO DEPARTMENT (ID, NAME) VALUES (2, 'CA13'); 11 | INSERT INTO DEPARTMENT (ID, NAME) VALUES (3, 'CA19'); -------------------------------------------------------------------------------- /examples/Chapter6/16-persistingWithRelationships/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/17-persistingWithRelationshipsUsingGetReference/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/17-persistingWithRelationshipsUsingGetReference/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/18-removingWithRelationships/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/18-removingWithRelationships/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/19-persistingWithRelationshipsCascade/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/19-persistingWithRelationshipsCascade/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | DROP TABLE ADDRESS; 3 | 4 | CREATE TABLE ADDRESS (ID INTEGER NOT NULL, CITY VARCHAR(255), STATE VARCHAR(255), STREET VARCHAR(255), ZIP VARCHAR(255), PRIMARY KEY (ID)); 5 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), ADDRESS_ID INTEGER, PRIMARY KEY (ID), 6 | CONSTRAINT ADDRESS_FK FOREIGN KEY (ADDRESS_ID) REFERENCES ADDRESS(ID)); 7 | -------------------------------------------------------------------------------- /examples/Chapter6/19-persistingWithRelationshipsCascade/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/20-removingWithRelationshipsCascade/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/20-removingWithRelationshipsCascade/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/21-mergingDetachedEntities/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/21-mergingDetachedEntities/etc/sql/db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE EMPLOYEE; 2 | 3 | CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), LASTACCESSTIME TIMESTAMP, PRIMARY KEY (ID)); 4 | 5 | INSERT INTO EMPLOYEE (ID, NAME) VALUES (1, 'Joan'); 6 | INSERT INTO EMPLOYEE (ID, NAME) VALUES (2, 'Sarah'); 7 | INSERT INTO EMPLOYEE (ID, NAME) VALUES (3, 'John'); 8 | INSERT INTO EMPLOYEE (ID, NAME) VALUES (4, 'Roberts'); 9 | INSERT INTO EMPLOYEE (ID, NAME) VALUES (5, 'Peter'); -------------------------------------------------------------------------------- /examples/Chapter6/21-mergingDetachedEntities/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/22-detachmentWithTriggeredLazyLoading/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/22-detachmentWithTriggeredLazyLoading/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/23-detachmentWithEagerLoading/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/23-detachmentWithEagerLoading/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/24-noDetachmentSingleTx/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/24-noDetachmentSingleTx/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/25-noDetachmentAppManagedEm/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/25-noDetachmentAppManagedEm/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/26-noDetachmentSFSBAndExtendedEm/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/26-noDetachmentSFSBAndExtendedEm/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/27-editSessionExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/27-editSessionExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/28-conversationExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter6/28-conversationExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/01-dynamicQueryExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/01-dynamicQueryExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/02-namedQueryExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/02-namedQueryExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/03-dynamicNamedQueryExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/03-dynamicNamedQueryExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/04-paramTypesExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/04-paramTypesExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/05-executingQueriesExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/05-executingQueriesExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/06-queryResultsExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/06-queryResultsExample/src/model/examples/EmpMenu.java: -------------------------------------------------------------------------------- 1 | package examples; 2 | 3 | public class EmpMenu { 4 | private String employeeName; 5 | private String departmentName; 6 | 7 | public EmpMenu(String employeeName, String departmentName) { 8 | this.employeeName = employeeName; 9 | this.departmentName = departmentName; 10 | } 11 | 12 | public String getEmployeeName() { 13 | return employeeName; 14 | } 15 | 16 | public String getDepartmentName() { 17 | return departmentName; 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /examples/Chapter7/06-queryResultsExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/07-queryPagingExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/07-queryPagingExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/08-messageBoardExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/08-messageBoardExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/09-bulkQueryExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/09-bulkQueryExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/10-queryHintsExample/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter7/10-queryHintsExample/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter8/jpqlExamples/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/Chapter8/jpqlExamples/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter8/jpqlExamples/src/model/examples/model/DesignProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("DP") 8 | public class DesignProject extends Project { 9 | } 10 | -------------------------------------------------------------------------------- /examples/Chapter8/jpqlExamples/src/model/examples/model/EmployeeDetails.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public class EmployeeDetails { 4 | private String name; 5 | private long salary; 6 | private String deptName; 7 | 8 | public EmployeeDetails(String name, long salary, String deptName) { 9 | this.name = name; 10 | this.salary = salary; 11 | this.deptName = deptName; 12 | } 13 | 14 | public String toString() { 15 | return "EmployeeDetails name: " + name + 16 | ", salary: " + salary + 17 | ", deptName: " + deptName; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/Chapter8/jpqlExamples/src/model/examples/model/QualityProject.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.DiscriminatorValue; 5 | 6 | @Entity 7 | @DiscriminatorValue("QP") 8 | public class QualityProject extends Project { 9 | private int qa_rating; 10 | 11 | public int getQaRating() { return qa_rating; } 12 | public void setQaRating(int rating) { this.qa_rating = rating; } 13 | 14 | public String toString() { 15 | return super.toString() + ", rating: " + qa_rating; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /examples/Chapter8/jpqlExamples/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/01-employeeSearchService/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/01-employeeSearchService/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/02-predicateConjunction/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/02-predicateConjunction/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/03-empSearchSubQuery/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/03-empSearchSubQuery/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/04-metamodelStronglyTyped/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/04-metamodelStronglyTyped/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/05-canonicalMetamodel/generate.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant generate 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/05-canonicalMetamodel/generateAndCompile.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant generateAndCompile 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/06-canonicalMetamodelQuery/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/Chapter9/06-canonicalMetamodelQuery/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /examples/OldMigrationExample/entityBeanMigration/deploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant deploy 2 | pause -------------------------------------------------------------------------------- /examples/OldMigrationExample/entityBeanMigration/src/ejb/examples/stateless/ProjectService.java: -------------------------------------------------------------------------------- 1 | package examples.stateless; 2 | 3 | import examples.model.ApplicationException; 4 | 5 | public interface ProjectService { 6 | 7 | public void addEmployeeToProject(int projectId, int empId) 8 | throws ApplicationException; 9 | // ... 10 | } 11 | 12 | -------------------------------------------------------------------------------- /examples/OldMigrationExample/entityBeanMigration/src/model/examples/entitybean/Department.java: -------------------------------------------------------------------------------- 1 | package examples.entitybean; 2 | 3 | import java.util.Collection; 4 | 5 | import javax.ejb.EJBLocalObject; 6 | 7 | public interface Department extends EJBLocalObject { 8 | public int getId(); 9 | public void setId(int id); 10 | 11 | public String getName(); 12 | public void setName(String name); 13 | 14 | public Collection getEmployees(); 15 | public void setEmployees(Collection employees); 16 | 17 | public Employee getManager(); 18 | } 19 | 20 | -------------------------------------------------------------------------------- /examples/OldMigrationExample/entityBeanMigration/src/model/examples/entitybean/EmployeeHome.java: -------------------------------------------------------------------------------- 1 | package examples.entitybean; 2 | 3 | import javax.ejb.CreateException; 4 | import javax.ejb.EJBLocalHome; 5 | import javax.ejb.FinderException; 6 | 7 | public interface EmployeeHome extends EJBLocalHome { 8 | public Employee create(int id) throws CreateException; 9 | public Employee findByPrimaryKey(int id) throws FinderException; 10 | } 11 | -------------------------------------------------------------------------------- /examples/OldMigrationExample/entityBeanMigration/src/model/examples/entitybean/Project.java: -------------------------------------------------------------------------------- 1 | package examples.entitybean; 2 | 3 | import java.util.Collection; 4 | 5 | import javax.ejb.EJBLocalObject; 6 | 7 | public interface Project extends EJBLocalObject { 8 | public int getId(); 9 | public void setId(int id); 10 | 11 | public String getName(); 12 | public void setName(String name); 13 | 14 | public Collection getEmployees(); 15 | public void setEmployees(Collection employees); 16 | 17 | public Employee getManager(); 18 | } 19 | 20 | -------------------------------------------------------------------------------- /examples/OldMigrationExample/entityBeanMigration/src/model/examples/model/ApplicationException.java: -------------------------------------------------------------------------------- 1 | package examples.model; 2 | 3 | public class ApplicationException extends Exception { 4 | 5 | public ApplicationException() { 6 | } 7 | 8 | public ApplicationException(String message, Throwable cause) { 9 | super(message, cause); 10 | } 11 | 12 | public ApplicationException(String message) { 13 | super(message); 14 | } 15 | 16 | public ApplicationException(Throwable cause) { 17 | super(cause); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/OldMigrationExample/entityBeanMigration/undeploy.bat: -------------------------------------------------------------------------------- 1 | call ../../../config/ant undeploy 2 | pause -------------------------------------------------------------------------------- /lib/commons-logging.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-jpa-2-in-java-ee-8/f56e599b79cc8a216c135ac868a692d9022c2e7a/lib/commons-logging.jar -------------------------------------------------------------------------------- /lib/junit-4.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-jpa-2-in-java-ee-8/f56e599b79cc8a216c135ac868a692d9022c2e7a/lib/junit-4.0.jar -------------------------------------------------------------------------------- /lib/org.eclipse.persistence.jpa.modelgen.processor.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-jpa-2-in-java-ee-8/f56e599b79cc8a216c135ac868a692d9022c2e7a/lib/org.eclipse.persistence.jpa.modelgen.processor.jar -------------------------------------------------------------------------------- /lib/readme.txt: -------------------------------------------------------------------------------- 1 | These libraries are needed by some of the examples in Chapters 9 and 13. 2 | They are automatically copied to the necessary location by the deploy script or referenced in the classpath. --------------------------------------------------------------------------------