package won.protocol.model;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import javax.persistence.*;
import java.util.List;
/**
* User: sbyim
* Date: 11.11.13
*/
@Entity
@Table(name = "ownerApplication")
public class OwnerApplication {
@Id
@GeneratedValue
@Column( name = "id" )
private Long id;
@ManyToMany(mappedBy = "authorizedApplications", targetEntity = Need.class,fetch = FetchType.LAZY,
cascade = CascadeType.DETACH)
private List<Need> needs;
@ElementCollection(fetch = FetchType.EAGER) //required eager as the object is passed out of a hibernate session in
// OwnerProtocolOutgoingMessagesProcessor
@Fetch(value = FetchMode.SUBSELECT)
@CollectionTable(name="QueueNames", joinColumns = @JoinColumn(name="owner_application_id"))
@Column(name="queueName")
private List<String> queueNames;
@Column(name="incomingEndpoint")
private String incomingEndpoint;
@Column( name = "ownerApplicationId", unique = true )
private String ownerApplicationId;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getOwnerApplicationId() {
return ownerApplicationId;
}
public void setOwnerApplicationId(String ownerApplicationId) {
this.ownerApplicationId = ownerApplicationId;
}
// public List<Need> getNeeds() {
// return needs;
// }
//
// public void setNeeds(List<Need> needs) {
// this.needs = needs;
// }
public List<String> getQueueNames() {
return queueNames;
}
public void setQueueNames(List<String> queueNames) {
this.queueNames = queueNames;
}
public void setIncomingEndpoint(String incomingEndpoint){
}
}