java - Play - Querying many to many relationships -
i'm using play framework ebean. have 2 classes share many-to-many relationship
@entity public class profiles extends model { @id @column(name = "profile_id") public integer _id; public string profile; public string description; @manytomany(cascade = cascadetype.all) public list<role> roles; ...... @entity public class role extends model { @id @column(name = "role_id") public integer _id; public string role; public integer parent; public string description; public integer sequence; @manytomany(cascade = cascadetype.all) public arraylist<profiles> prof_ids = new arraylist<profiles>(); ..... i'm having problem trying generate list containing roles particular profile has. show me how done?
you need provide more info on you're trying do.
see below action creates profile 2 roles, persists profile (and roles), finds profiles, logs found profiles , associated roles , renders them json:
public class profiles extends controller { public static result create() { profiles profile = new profiles(); profile.description = "testing"; profile.profile = "test profile"; role role = new models.role(); role.description = "test role 1"; role.role = "role 1"; profile.roles.add(role); role = new models.role(); role.description = "test role 2"; role.role = "role 2"; profile.roles.add(role); profile.save(); list<profiles> profiles = ebean.find(profiles.class).findlist(); (profiles p : profiles) { logger.info("profile: {}", p.profile); (role r : p.roles) { logger.info("\t-> has role: {}", r.role); } } homecoming ok(json.tojson(profiles)).as("application/json"); } } to list of roles, note reference p.roles above. want?
see here more advanced queries etc.
some things maintain in mind:
always start class names capital letter in java. code above hard read using lowercase model/entity names... name entity identifierid not _id, causes issues when ebean generates queries. java sql playframework-2.0 many-to-many ebean
No comments:
Post a Comment