/*
 * The MIT License
 *
 * Copyright 2014 Mikko Oksa.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

package models;

import com.avaje.ebean.annotation.CacheStrategy;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@CacheStrategy(readOnly = true, warmingQuery = "ORDER BY name")
@Entity
@Table(name = "city")
public class City {

	public static final String TABLE_NAME = "city";

	public static final String COL_NAME = "name";

	public static final String FETCH_DOGPARKS = "dogParks";

	@Id
	private Long id;

	@Column(name = COL_NAME, nullable = false)
	private String name;

	@OneToMany(cascade = CascadeType.ALL)
	private List<DogPark> dogParks;

	public City() {
	}

	public City(String name) {
		this.name = name;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public List<DogPark> getDogParks() {
		return dogParks;
	}

	public void setDogParks(List<DogPark> dogParks) {
		this.dogParks = dogParks;
	}

}

@@ -1386,16 +1386,50 @@
 ToMany;%0A
+import javax.persistence.OrderBy;%0A
 import j
@@ -1715,17 +1715,17 @@
 S = %22dog
-P
+p
 arks%22;%0A%0A
@@ -1854,16 +1854,38 @@
 pe.ALL)%0A
+%09@OrderBy(%22name ASC%22)%0A
 %09private
@@ -1889,33 +1889,33 @@
 ate List%3CDog
-P
+p
 ark%3E dog
 Parks;%0A%0A%09pub
@@ -1898,25 +1898,25 @@
 Dogpark%3E dog
-P
+p
 arks;%0A%0A%09publ
@@ -2191,25 +2191,25 @@
 lic List%3CDog
-P
+p
 ark%3E getDogP
@@ -2203,25 +2203,25 @@
 park%3E getDog
-P
+p
 arks() %7B%0A%09%09r
@@ -2225,25 +2225,25 @@
 %09%09return dog
-P
+p
 arks;%0A%09%7D%0A%0A%09p
@@ -2259,17 +2259,17 @@
 d setDog
-P
+p
 arks(Lis
@@ -2277,17 +2277,17 @@
 %3CDog
-P
+p
 ark%3E dog
 Park
@@ -2278,25 +2278,25 @@
 Dogpark%3E dog
-P
+p
 arks) %7B%0A%09%09th
@@ -2301,17 +2301,17 @@
 this.dog
-P
+p
 arks = d
@@ -2312,17 +2312,17 @@
 ks = dog
-P
+p
 arks;%0A%09%7D

Order dogparks by name