Java android ROOM get object with detais












1















I have this :



    @Entity(tableName = "director"/*,
indices = {@Index(value = "full_name", unique = true)}*/)
public class Director {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "did")
public int id;
@ColumnInfo(name = "full_name")
@NonNull
public String fullName;


@Entity(tableName = "movie",
foreignKeys = @ForeignKey(entity = Director.class,
parentColumns = "did",
childColumns = "directorId",
onDelete = ForeignKey.CASCADE),
indices = {@Index("title"), @Index("directorId")})
public class Movie {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "mid")
public int id;
@ColumnInfo(name = "title")
@NonNull
public String title;
@ColumnInfo(name = "directorId")
public int directorId;


Amd when I get all movies I get director id . What I should to do to generate this :



public class MovieWithDirector {

Movie movie;
Director director;
}


I can get a user and later get directerByID but I don not now if this is a the best way to do this










share|improve this question



























    1















    I have this :



        @Entity(tableName = "director"/*,
    indices = {@Index(value = "full_name", unique = true)}*/)
    public class Director {
    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "did")
    public int id;
    @ColumnInfo(name = "full_name")
    @NonNull
    public String fullName;


    @Entity(tableName = "movie",
    foreignKeys = @ForeignKey(entity = Director.class,
    parentColumns = "did",
    childColumns = "directorId",
    onDelete = ForeignKey.CASCADE),
    indices = {@Index("title"), @Index("directorId")})
    public class Movie {
    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "mid")
    public int id;
    @ColumnInfo(name = "title")
    @NonNull
    public String title;
    @ColumnInfo(name = "directorId")
    public int directorId;


    Amd when I get all movies I get director id . What I should to do to generate this :



    public class MovieWithDirector {

    Movie movie;
    Director director;
    }


    I can get a user and later get directerByID but I don not now if this is a the best way to do this










    share|improve this question

























      1












      1








      1


      1






      I have this :



          @Entity(tableName = "director"/*,
      indices = {@Index(value = "full_name", unique = true)}*/)
      public class Director {
      @PrimaryKey(autoGenerate = true)
      @ColumnInfo(name = "did")
      public int id;
      @ColumnInfo(name = "full_name")
      @NonNull
      public String fullName;


      @Entity(tableName = "movie",
      foreignKeys = @ForeignKey(entity = Director.class,
      parentColumns = "did",
      childColumns = "directorId",
      onDelete = ForeignKey.CASCADE),
      indices = {@Index("title"), @Index("directorId")})
      public class Movie {
      @PrimaryKey(autoGenerate = true)
      @ColumnInfo(name = "mid")
      public int id;
      @ColumnInfo(name = "title")
      @NonNull
      public String title;
      @ColumnInfo(name = "directorId")
      public int directorId;


      Amd when I get all movies I get director id . What I should to do to generate this :



      public class MovieWithDirector {

      Movie movie;
      Director director;
      }


      I can get a user and later get directerByID but I don not now if this is a the best way to do this










      share|improve this question














      I have this :



          @Entity(tableName = "director"/*,
      indices = {@Index(value = "full_name", unique = true)}*/)
      public class Director {
      @PrimaryKey(autoGenerate = true)
      @ColumnInfo(name = "did")
      public int id;
      @ColumnInfo(name = "full_name")
      @NonNull
      public String fullName;


      @Entity(tableName = "movie",
      foreignKeys = @ForeignKey(entity = Director.class,
      parentColumns = "did",
      childColumns = "directorId",
      onDelete = ForeignKey.CASCADE),
      indices = {@Index("title"), @Index("directorId")})
      public class Movie {
      @PrimaryKey(autoGenerate = true)
      @ColumnInfo(name = "mid")
      public int id;
      @ColumnInfo(name = "title")
      @NonNull
      public String title;
      @ColumnInfo(name = "directorId")
      public int directorId;


      Amd when I get all movies I get director id . What I should to do to generate this :



      public class MovieWithDirector {

      Movie movie;
      Director director;
      }


      I can get a user and later get directerByID but I don not now if this is a the best way to do this







      java android android-room






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 26 '18 at 6:54









      jpok2jpok2

      228




      228
























          2 Answers
          2






          active

          oldest

          votes


















          0














          I would say that better way to perform this action is to write query with join:



          SELECT  movie.title, director.fullname 
          FROM director
          INNER JOIN movie
          ON movie.directorId=director.id
          WHERE director.id= :passed_value


          Of course you will need custom class to for storing query result.
          If you check example from this link, and combine with query above then you'll be able to solve your problem.






          share|improve this answer































            0














            I think you want to use @Relation



            https://developer.android.com/reference/android/arch/persistence/room/Relation






            share|improve this answer























              Your Answer






              StackExchange.ifUsing("editor", function () {
              StackExchange.using("externalEditor", function () {
              StackExchange.using("snippets", function () {
              StackExchange.snippets.init();
              });
              });
              }, "code-snippets");

              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "1"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53476030%2fjava-android-room-get-object-with-detais%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              0














              I would say that better way to perform this action is to write query with join:



              SELECT  movie.title, director.fullname 
              FROM director
              INNER JOIN movie
              ON movie.directorId=director.id
              WHERE director.id= :passed_value


              Of course you will need custom class to for storing query result.
              If you check example from this link, and combine with query above then you'll be able to solve your problem.






              share|improve this answer




























                0














                I would say that better way to perform this action is to write query with join:



                SELECT  movie.title, director.fullname 
                FROM director
                INNER JOIN movie
                ON movie.directorId=director.id
                WHERE director.id= :passed_value


                Of course you will need custom class to for storing query result.
                If you check example from this link, and combine with query above then you'll be able to solve your problem.






                share|improve this answer


























                  0












                  0








                  0







                  I would say that better way to perform this action is to write query with join:



                  SELECT  movie.title, director.fullname 
                  FROM director
                  INNER JOIN movie
                  ON movie.directorId=director.id
                  WHERE director.id= :passed_value


                  Of course you will need custom class to for storing query result.
                  If you check example from this link, and combine with query above then you'll be able to solve your problem.






                  share|improve this answer













                  I would say that better way to perform this action is to write query with join:



                  SELECT  movie.title, director.fullname 
                  FROM director
                  INNER JOIN movie
                  ON movie.directorId=director.id
                  WHERE director.id= :passed_value


                  Of course you will need custom class to for storing query result.
                  If you check example from this link, and combine with query above then you'll be able to solve your problem.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 26 '18 at 14:05









                  BartoszBartosz

                  11615




                  11615

























                      0














                      I think you want to use @Relation



                      https://developer.android.com/reference/android/arch/persistence/room/Relation






                      share|improve this answer




























                        0














                        I think you want to use @Relation



                        https://developer.android.com/reference/android/arch/persistence/room/Relation






                        share|improve this answer


























                          0












                          0








                          0







                          I think you want to use @Relation



                          https://developer.android.com/reference/android/arch/persistence/room/Relation






                          share|improve this answer













                          I think you want to use @Relation



                          https://developer.android.com/reference/android/arch/persistence/room/Relation







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 30 '18 at 14:01









                          danieldaniel

                          706411




                          706411






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53476030%2fjava-android-room-get-object-with-detais%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Contact image not getting when fetch all contact list from iPhone by CNContact

                              count number of partitions of a set with n elements into k subsets

                              A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks