Floor.java
- package info.ejava.examples.ejb.ejbjpa.bo;
- import java.io.Serializable;
- import java.util.LinkedList;
- import java.util.List;
- import javax.persistence.CascadeType;
- import javax.persistence.Column;
- import javax.persistence.Entity;
- import javax.persistence.FetchType;
- import javax.persistence.Id;
- import javax.persistence.NamedQueries;
- import javax.persistence.NamedQuery;
- import javax.persistence.OneToMany;
- import javax.persistence.OrderBy;
- import javax.persistence.Table;
- @Entity
- @Table(name="EJBJPA_FLOOR")
- @NamedQueries({
- @NamedQuery(name="Floor.getFloors",
- query="select f from Floor f order by level"),
- @NamedQuery(name="Floor.fetchFloor",
- query="select f from Floor f "
- + "join fetch f.rooms r "
- + "join fetch r.occupant "
- + "where f.level=:level")
- })
- public class Floor implements Serializable {
- private static final long serialVersionUID = 1L;
- @Id
- @Column(name="LEVEL", nullable=false)
- int level;
-
- @OneToMany(mappedBy="floor",
- fetch=FetchType.LAZY,
- cascade={CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.DETACH},
- orphanRemoval=true)
- @OrderBy("number")
- List<Room> rooms;
-
- protected Floor() {}
- public Floor(int level) {
- this.level = level;
- }
-
- public int getLevel() { return level; }
- public List<Room> getRooms() { return rooms; }
- public void setRooms(List<Room> rooms) {
- this.rooms = rooms;
- }
- public Floor withRoom(Room room) {
- if (rooms==null) {
- rooms = new LinkedList<Room>();
- }
- if (room!=null) {
- rooms.add(room);
- }
- return this;
- }
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("Floor [level=").append(level)
- .append(", rooms={").append("\n");
- if (rooms!=null) { for (Room room: rooms) {
- builder.append(room).append("\n");
- }}
- builder.append("}");
- return builder.toString();
- }
- }