【发布时间】:2011-01-13 22:46:53
【问题描述】:
我有一个名为 User 的实体。 我还有另一部实体电影。
我希望用户有一个列表。 但是我的代码有很多例外。 你能解释一下怎么做吗?
谢谢
【问题讨论】:
-
也许如果您包含您的代码,以及您遇到的异常情况,我们可以提供帮助。
标签: java google-app-engine entity entities
我有一个名为 User 的实体。 我还有另一部实体电影。
我希望用户有一个列表。 但是我的代码有很多例外。 你能解释一下怎么做吗?
谢谢
【问题讨论】:
标签: java google-app-engine entity entities
User 和 Movie 之间的关系示例如下所示:
用户类别:
import java.util.Set;
import com.google.appengine.api.datastore.Key;
public class User {
@Persistent
private Set<Key> ownsMovies;
public void addMovie(Movie movie) {
// We remember to maintain the relation both ways.
ownsMovies.add(movie.getKey());
movie.getOwners().add(getKey());
}
public void removeMovie(Movie movie) {
// We remember to maintain the relation both ways.
ownsMovies.remove(movie.getKey());
movie.getOwners().remove(getKey());
}
}
电影课。
import java.util.Set;
import com.google.appengine.api.datastore.Key;
public class Movie {
@Persistent
private Set<Key> owners;
}
【讨论】:
也许仍然感兴趣:another nice Stackoverflow answer 很好地解释了使用 JDO 或 JPA 的情况。
【讨论】:
appengine 中没有引用列表属性。您仍然可以使用 db.ListProperty(db.Key) 来存储任何实体键的列表。
型号:
class User(db.Model):
movie_list=db.ListProperty(db.Key)
class Movie(db.Model):
name=db.StringProperty()
观看次数:
user=User()
movies=Movie.gql("")#The Movie entities you want to fetch
for movie in movies:
user.movie_list.append(data)
/// 这里movie_list存放的是Data实体的key
Data.get(user.movie_list) 将获取所有其 key 在 data_list 属性中的 Movie 实体
【讨论】: