hibernate/jpa double OneToOne Bidirectional Relationship to one entity












0














I have the following structure that I can't figure out how to put in the correct hibernate mapping.



public class Company{
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "details_x")
private Details detailsX;

@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "details_y")
private Details detailsY;
}


and



public class Details{
....
private Type type; //Enum that could be x or y

@OneToOne
private Company company;
}


Company has exactly on details for x and one for y. A details can only be used by one company in either x or y.
Database wise I'm think the best set-up is to have 2 columns on tbl_company reference the Pk of Details.
But this results in the relation from Details to Company not working.



Anyone any suggestions on how to best map this?



Edit: added type to Details










share|improve this question





























    0














    I have the following structure that I can't figure out how to put in the correct hibernate mapping.



    public class Company{
    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "details_x")
    private Details detailsX;

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "details_y")
    private Details detailsY;
    }


    and



    public class Details{
    ....
    private Type type; //Enum that could be x or y

    @OneToOne
    private Company company;
    }


    Company has exactly on details for x and one for y. A details can only be used by one company in either x or y.
    Database wise I'm think the best set-up is to have 2 columns on tbl_company reference the Pk of Details.
    But this results in the relation from Details to Company not working.



    Anyone any suggestions on how to best map this?



    Edit: added type to Details










    share|improve this question



























      0












      0








      0


      1





      I have the following structure that I can't figure out how to put in the correct hibernate mapping.



      public class Company{
      @OneToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "details_x")
      private Details detailsX;

      @OneToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "details_y")
      private Details detailsY;
      }


      and



      public class Details{
      ....
      private Type type; //Enum that could be x or y

      @OneToOne
      private Company company;
      }


      Company has exactly on details for x and one for y. A details can only be used by one company in either x or y.
      Database wise I'm think the best set-up is to have 2 columns on tbl_company reference the Pk of Details.
      But this results in the relation from Details to Company not working.



      Anyone any suggestions on how to best map this?



      Edit: added type to Details










      share|improve this question















      I have the following structure that I can't figure out how to put in the correct hibernate mapping.



      public class Company{
      @OneToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "details_x")
      private Details detailsX;

      @OneToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "details_y")
      private Details detailsY;
      }


      and



      public class Details{
      ....
      private Type type; //Enum that could be x or y

      @OneToOne
      private Company company;
      }


      Company has exactly on details for x and one for y. A details can only be used by one company in either x or y.
      Database wise I'm think the best set-up is to have 2 columns on tbl_company reference the Pk of Details.
      But this results in the relation from Details to Company not working.



      Anyone any suggestions on how to best map this?



      Edit: added type to Details







      java hibernate spring-boot jpa orm






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 21 at 8:10

























      asked Nov 20 at 19:05









      Joris

      13




      13
























          1 Answer
          1






          active

          oldest

          votes


















          0














          You have to define mappedBy property which will say that i am not the owner like below.



          public class Details{
          @OneToOne(mappedBy = "detailsX", cascade = CascadeType.ALL,
          fetch = FetchType.LAZY, optional = false)
          private Company company;
          }





          share|improve this answer





















          • This only works then for detailsX not for detailsY, the problem I'm having it is one of these 2
            – Joris
            Nov 20 at 19:51











          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%2f53399868%2fhibernate-jpa-double-onetoone-bidirectional-relationship-to-one-entity%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          You have to define mappedBy property which will say that i am not the owner like below.



          public class Details{
          @OneToOne(mappedBy = "detailsX", cascade = CascadeType.ALL,
          fetch = FetchType.LAZY, optional = false)
          private Company company;
          }





          share|improve this answer





















          • This only works then for detailsX not for detailsY, the problem I'm having it is one of these 2
            – Joris
            Nov 20 at 19:51
















          0














          You have to define mappedBy property which will say that i am not the owner like below.



          public class Details{
          @OneToOne(mappedBy = "detailsX", cascade = CascadeType.ALL,
          fetch = FetchType.LAZY, optional = false)
          private Company company;
          }





          share|improve this answer





















          • This only works then for detailsX not for detailsY, the problem I'm having it is one of these 2
            – Joris
            Nov 20 at 19:51














          0












          0








          0






          You have to define mappedBy property which will say that i am not the owner like below.



          public class Details{
          @OneToOne(mappedBy = "detailsX", cascade = CascadeType.ALL,
          fetch = FetchType.LAZY, optional = false)
          private Company company;
          }





          share|improve this answer












          You have to define mappedBy property which will say that i am not the owner like below.



          public class Details{
          @OneToOne(mappedBy = "detailsX", cascade = CascadeType.ALL,
          fetch = FetchType.LAZY, optional = false)
          private Company company;
          }






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 20 at 19:11









          Alien

          4,68331024




          4,68331024












          • This only works then for detailsX not for detailsY, the problem I'm having it is one of these 2
            – Joris
            Nov 20 at 19:51


















          • This only works then for detailsX not for detailsY, the problem I'm having it is one of these 2
            – Joris
            Nov 20 at 19:51
















          This only works then for detailsX not for detailsY, the problem I'm having it is one of these 2
          – Joris
          Nov 20 at 19:51




          This only works then for detailsX not for detailsY, the problem I'm having it is one of these 2
          – Joris
          Nov 20 at 19:51


















          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.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • 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%2f53399868%2fhibernate-jpa-double-onetoone-bidirectional-relationship-to-one-entity%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

          Feedback on college project

          Futebolista

          Albești (Vaslui)