これを解決する方法を探すのに何時間も費やしました。子から親を取得しようとすると、id フィールド以外はすべて空になります。意味がありません。それが何かを示す可能性がある場合、私は PlayFramework 2.0.4 を使用しています (フレームワークのひどい選択以外に)。
TRoute.java (親)
@Entity
@Table(name="routes")
public class TRoute extends Model {
@Id
public String route_id;
public String agency_id;
@Constraints.Required
public String route_short_name;
@Constraints.Required
public String route_long_name;
public String route_desc;
@Constraints.Required
public String route_type;
public String route_url;
public String route_color;
public String route_text_color;
@OneToMany(mappedBy="troute")
public List<Trip> trips;
public static Finder<String, TRoute> find = new Finder(
String.class, TRoute.class
);
}
Trip.java (子)
@Entity
@Table(name="trips")
public class Trip extends Model {
@Constraints.Required
public String route_id;
@Constraints.Required
public String service_id;
@Id
public String trip_id;
public String trip_headsign;
public String direction_id;
public String block_id;
public String shape_id;
@ManyToOne
@JoinColumn(name="route_id")
public TRoute troute;
public static List<Trip> byRouteId(String route_id) {
List<Trip> trips =
Trip.find
.where().like("route_id", route_id)
.findList();
return trips;
}
public static Finder<String, Trip> find = new Finder(
String.class, Trip.class
);
}