這是我對這些網站的第一個問題,所以原諒我的不專業。Playframework錫耶納過濾和訂貨
我用playframework與SIENA模塊(與GAE)和我來到翻過了以下問題: 由於3個實體:
public class Meeting extends Model{
@Id
public Long id;
public String place;
@Owned
Many<MeetingUser> users;
.
.
.
}
public class User extends Model{
@Id
public Long id;
public String firstName;
public String lastName;
@Owned
Many<MeetingUser> meetings;
.
.
.
}
public class MeetingUser extends Model{
@Id
public Long id;
public Meeting meeting;
public User user;
.
.
.
public User getUser(){
return Model.all(User.class).filter("id", user).get();
}
public Meeting getMeeting(){
return Model.all(Meeting.class).filter("id", meeting).get();
}
}
比如我列出一個會議,他們的所有用戶:
public static void meetingInfo(Long meetingId){
Meeting meeting = Models.all(Meeting.class).filter("id",meetingId);
List<MeetingUser> meetingusers = meeting.asList();
List<User> users = new ArrayList<User>();
for(MeetingUser mu: meetingusers){
users.add(mu.getUser());
}
render(users);
}
這樣做(有沒有什麼更好的辦法嗎?),但是,當涉及到過濾(特別是對於許多許多領域的動態過濾),我不能使用查詢的過濾方法在MeetingUser爲我需要在MeetingUser的字段的字段(firstName)上進行篩選。訂購時出現同樣的問題。我需要解決這兩個問題。
我希望我的問題是清楚的,我在這裏感謝任何形式的幫助。
我不知道你加入請求是什麼意思。什麼是GAE兼容性的解決方案。 您的示例在我的經驗中不起作用,如您所說: meeting.users.asQuery()//返回查詢 .filter(「firstname」,「XXX」)。fetch(); //會產生一個錯誤,因爲MeetingUser類沒有「firstname」字段。 –
2012-01-11 14:32:27
加入請求是在同一時間在幾個表上的請求...經典的SQL JOIN(你可以在網上找到關於它的信息) – mandubian 2012-01-11 14:45:45
關於我的示例,我以爲你想過濾MeetingUsers的名字...所以看起來我不明白你想要什麼...... – mandubian 2012-01-11 14:46:23