#527 - @OrderBy on child-of-child property

This commit is contained in:
Robin Bygrave
2016-01-13 11:37:38 +13:00
parent 0453892ebd
commit b04419d9c7
7 changed files with 147 additions and 57 deletions
@@ -1,51 +1,51 @@
package com.avaje.tests.model.basic;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import java.util.HashSet;
import java.util.Set;
@Entity
@Inheritance
@DiscriminatorValue("C")
public class Car extends Vehicle {
private static final long serialVersionUID = 4716705779684333446L;
private static final long serialVersionUID = 4716705779684333446L;
private String driver;
private String driver;
@ManyToOne
TruckRef carRef;
@OneToMany(mappedBy="car")
private Set<CarAccessory> accessories = new HashSet<CarAccessory>();
public String getDriver() {
return driver;
}
@ManyToOne
TruckRef carRef;
public void setDriver(String driver) {
this.driver = driver;
}
@OneToMany(mappedBy = "car")
@OrderBy("fuse.locationCode")
private Set<CarAccessory> accessories = new HashSet<CarAccessory>();
public TruckRef getCarRef() {
return carRef;
}
public String getDriver() {
return driver;
}
public void setCarRef(TruckRef carRef) {
this.carRef = carRef;
}
public void setDriver(String driver) {
this.driver = driver;
}
public Set<CarAccessory> getAccessories() {
return accessories;
}
public TruckRef getCarRef() {
return carRef;
}
public void setAccessories(Set<CarAccessory> accessories) {
this.accessories = accessories;
}
public void setCarRef(TruckRef carRef) {
this.carRef = carRef;
}
public Set<CarAccessory> getAccessories() {
return accessories;
}
public void setAccessories(Set<CarAccessory> accessories) {
this.accessories = accessories;
}
}
@@ -4,28 +4,44 @@ import javax.persistence.Entity;
import javax.persistence.ManyToOne;
@Entity
public class CarAccessory extends BasicDomain{
private static final long serialVersionUID = 1L;
public class CarAccessory extends BasicDomain {
private String name;
@ManyToOne
private Car car;
private static final long serialVersionUID = 1L;
public String getName() {
return name;
}
private String name;
public void setName(String name) {
this.name = name;
}
@ManyToOne(optional = false)
private CarFuse fuse;
public Car getCar() {
return car;
}
@ManyToOne
private Car car;
public void setCar(Car car) {
this.car = car;
}
public CarAccessory(Car car, CarFuse fuse) {
this.car = car;
this.fuse = fuse;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public CarFuse getFuse() {
return fuse;
}
public void setFuse(CarFuse fuse) {
this.fuse = fuse;
}
}
@@ -0,0 +1,29 @@
package com.avaje.tests.model.basic;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class CarFuse {
@Id
Long id;
String locationCode;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getLocationCode() {
return locationCode;
}
public void setLocationCode(String locationCode) {
this.locationCode = locationCode;
}
}