玩!框架JPA和GroupBy

时间:2013-01-18 13:20:07

标签: java jpa playframework group-by ebean

播放!框架没有按功能分组。缺乏功能真的开始让我感到烦恼。我该如何解决这个问题?我希望byRouteId按trip_headsign分组。简单的原始查询看起来像:

SELECT *
FROM trips
WHERE route_id = 1070
GROUP BY trip_headsign

这是我的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
            .fetch("troute") // fetch TRoute properties.
            .where().like("route_id", route_id)
            .findList();
        return trips;
    }

    public static Finder<String, Trip> find = new Finder(
            String.class, Trip.class
    );

}

1 个答案:

答案 0 :(得分:0)

您可以使用原始SQL查询,而不是使用来自javax.persistence的EntityManager类的createNativeQuery函数。

EntityManager em = play.db.jpa.JPA.em();
List<Trip> tripList = em.createNativeQuery("insert raw sql query here").getResultList();