JPA supports “The Persistence of Memory”—which is the title of a well known
Salvador Dali painting. Salvador Dalí. The Persistence of Memory. 1931.
Developing Enterprise Java Applications with JSF and JPA using Eclipse WTP Sinan Konya
[email protected]
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
Why ‘Dali’? JPA supports “The Persistence of Memory”—which is the title of a well known Salvador Dali painting.
Salvador Dalí. The Persistence of Memory. 1931. © 2005 Salvador Dalí, Gala-Salvador Dalí Foundation/Artists Rights Society (ARS), New York © 2007
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
JPA—POJO Entities ¾ Concrete classes ¾ No required interfaces No required business interfaces No required callback interfaces ¾ new() for instance creation ¾ Direct access or getter/setter methods Can contain logic (e.g. for validation, etc.) ¾ “Managed” by an EntityManager ¾ Can leave the Container (become “detached”)
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
Object-Relational Mappings ¾ Core JPA Mappings Id Basic Relationships OneToOne OneToMany/ManyToOne ManyToMany And more… ¾ Can be specified using Annotations or XML XML mapping will be supported in Dali 1.0 which will ship with WTP 2.0. © 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
POJO public class Address { private int id; private String street; private String city; private String state; private String country; … }
JPA Entity @Entity public class Address { @Id private int id; private String street; private String city; private String state; private String country; … }
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
JPA Relationship Mappings ¾Single Entitiy @OneToOne @ManyToOne
¾Collection of Entities @OneToMany @ManyToMany
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
JSF Tools Project
¾Visual JSF-JSP Page Designer ¾ Faces Configuration Model, Editor and Wizards ¾ JSF Library Registry ¾ Extensible Frameworks ¾ Support for JavaServer Faces 1.1 and 1.2 versions
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.
Tutorial: Class Diagram
Course St udent
- id : Long - topic : String - beginDate : Date - endDate : Date
- id : Long - firstName : String = initval - lastName : String + + + + + + + + + +
getId() : Long getFirstName() : String getLastName() : String getAddress() : Address getCourses() : Set setId(id : Long) : void setFirstName(fName : String) : void setLastName(lName : String) : void setAddress(address : Address) : void setCourses(courses : Set) : void
+student 0..*
+ + + 0..* + + + + + + +
+courses
getId() : Long getTopic() : String getBeginDate() : Date getEndDate() : Date getStudents() : Set setId(id : Long) : void setTopic(topic : String) : void setBeginDate(beginDate : Date) : void setEndDate(endDate : Date) : void setStudents(students : Set) : void
+address 1..1 Address - id : Long - street : String - postalCode : String - city : String - country : String + + + + + + + + + +
getId() : Long getStreet() : String getPostalCode() : String getCity() : String getCountry() : String setId(id : Long) : void setStreet(street : String) : void setPostalCode(pk : String) : void setCity(city : String) : void setCountry(country : String) : void
© 2007 by Sinan Konya; made available under the EPL v1.0 | April 30,2007 | Eteration A.S.