package org.hibernate.ogm.hiking.model;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedNativeQuery;
import javax.persistence.OrderColumn;
import javax.validation.constraints.NotNull;
import org.hibernate.annotations.Type;
@Entity
@NamedNativeQuery( name = "hikesByTripId", query = "{ recommendedTrip_id: { $in: [ 27 ] } }", resultClass = Hike.class )
public class Hike {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Type(type = "objectid")
public String id;
@NotNull
public String start;
@NotNull
public String destination;
@ManyToOne
public Trip recommendedTrip;
@ElementCollection
@OrderColumn(name="order")
public List<Section> sections = new ArrayList<>();
Hike() {
}
public Hike(String start, String destination) {
this.start = start;
this.destination = destination;
}
}