Room.java
package info.ejava.examples.ejb.ejbjpa.bo;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name="EJBJPA_ROOM")
@NamedQueries({
@NamedQuery(name="Room.findRoomByGuest",
query="select r from Room r where r.occupant=:guest")
})
public class Room implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="ROOM_NUMBER")
private int number;
@ManyToOne(optional=false, fetch=FetchType.LAZY)
@JoinColumn(name="FLOOR_ID")
private Floor floor;
@OneToOne(optional=true, fetch=FetchType.LAZY)
@JoinColumn(name="OCCUPANT_ID")
private Guest occupant;
public Room() {}
public Room(Floor floor, int number) {
this.floor = floor;
this.number = number;
}
public int getNumber() { return number; }
public Floor getFloor() { return floor; }
public Guest getOccupant() { return occupant; }
public void setOccupant(Guest occupant) {
this.occupant = occupant;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("Room [number=").append(number)
.append(", occupant=").append(occupant).append("]");
return builder.toString();
}
}