Java JPA - OneToOne relation breaks after updating












0














I have two tables (entities) named User and Profile in JPA what are syncing with MySQL database. Relation between them is OneToOne and bidirectional.



Here is how I made relation in model:



User:



@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
private Profile profile;


Profile:



@OneToOne(cascade = CascadeType.ALL, mappedBy = "profile", optional = false)
private User user;


I am building REST API and my problem is when I update profile by his ID from controller.



Before I update data in Profile I am able to getUser from this profile.



After I update data in Profile (by profileService.update(profile);) I am not able to getUser for this profile.



Seems like the relation was broken.



In database there is no USER_ID on Profile table, just table 'User' have PROFILE_ID column.



Relation is working fine until I update it.










share|improve this question






















  • Can you create a Minimal, Complete, and Verifiable Example? Having more code might help us find what's wrong, but having too much can be harmful.
    – dquijada
    Dec 27 '18 at 16:46












  • @dquijada I know but I cannot post even minimal example. It will be very large, because its big Spring REST project
    – Baterka
    Dec 27 '18 at 16:47












  • Did you check if the relation persists on the database? It might be an example of you unintentionally modifying data before calling the .update
    – dquijada
    Dec 27 '18 at 16:51










  • @dquijada 'User' table still have 'PROFILE_ID' set. But it stop working in other direction
    – Baterka
    Dec 27 '18 at 16:53










  • Can you share the code of how you update the entity?
    – Aditya Narayan Dixit
    Dec 27 '18 at 17:04
















0














I have two tables (entities) named User and Profile in JPA what are syncing with MySQL database. Relation between them is OneToOne and bidirectional.



Here is how I made relation in model:



User:



@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
private Profile profile;


Profile:



@OneToOne(cascade = CascadeType.ALL, mappedBy = "profile", optional = false)
private User user;


I am building REST API and my problem is when I update profile by his ID from controller.



Before I update data in Profile I am able to getUser from this profile.



After I update data in Profile (by profileService.update(profile);) I am not able to getUser for this profile.



Seems like the relation was broken.



In database there is no USER_ID on Profile table, just table 'User' have PROFILE_ID column.



Relation is working fine until I update it.










share|improve this question






















  • Can you create a Minimal, Complete, and Verifiable Example? Having more code might help us find what's wrong, but having too much can be harmful.
    – dquijada
    Dec 27 '18 at 16:46












  • @dquijada I know but I cannot post even minimal example. It will be very large, because its big Spring REST project
    – Baterka
    Dec 27 '18 at 16:47












  • Did you check if the relation persists on the database? It might be an example of you unintentionally modifying data before calling the .update
    – dquijada
    Dec 27 '18 at 16:51










  • @dquijada 'User' table still have 'PROFILE_ID' set. But it stop working in other direction
    – Baterka
    Dec 27 '18 at 16:53










  • Can you share the code of how you update the entity?
    – Aditya Narayan Dixit
    Dec 27 '18 at 17:04














0












0








0







I have two tables (entities) named User and Profile in JPA what are syncing with MySQL database. Relation between them is OneToOne and bidirectional.



Here is how I made relation in model:



User:



@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
private Profile profile;


Profile:



@OneToOne(cascade = CascadeType.ALL, mappedBy = "profile", optional = false)
private User user;


I am building REST API and my problem is when I update profile by his ID from controller.



Before I update data in Profile I am able to getUser from this profile.



After I update data in Profile (by profileService.update(profile);) I am not able to getUser for this profile.



Seems like the relation was broken.



In database there is no USER_ID on Profile table, just table 'User' have PROFILE_ID column.



Relation is working fine until I update it.










share|improve this question













I have two tables (entities) named User and Profile in JPA what are syncing with MySQL database. Relation between them is OneToOne and bidirectional.



Here is how I made relation in model:



User:



@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
private Profile profile;


Profile:



@OneToOne(cascade = CascadeType.ALL, mappedBy = "profile", optional = false)
private User user;


I am building REST API and my problem is when I update profile by his ID from controller.



Before I update data in Profile I am able to getUser from this profile.



After I update data in Profile (by profileService.update(profile);) I am not able to getUser for this profile.



Seems like the relation was broken.



In database there is no USER_ID on Profile table, just table 'User' have PROFILE_ID column.



Relation is working fine until I update it.







java spring jpa






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Dec 27 '18 at 16:33









Baterka

218




218












  • Can you create a Minimal, Complete, and Verifiable Example? Having more code might help us find what's wrong, but having too much can be harmful.
    – dquijada
    Dec 27 '18 at 16:46












  • @dquijada I know but I cannot post even minimal example. It will be very large, because its big Spring REST project
    – Baterka
    Dec 27 '18 at 16:47












  • Did you check if the relation persists on the database? It might be an example of you unintentionally modifying data before calling the .update
    – dquijada
    Dec 27 '18 at 16:51










  • @dquijada 'User' table still have 'PROFILE_ID' set. But it stop working in other direction
    – Baterka
    Dec 27 '18 at 16:53










  • Can you share the code of how you update the entity?
    – Aditya Narayan Dixit
    Dec 27 '18 at 17:04


















  • Can you create a Minimal, Complete, and Verifiable Example? Having more code might help us find what's wrong, but having too much can be harmful.
    – dquijada
    Dec 27 '18 at 16:46












  • @dquijada I know but I cannot post even minimal example. It will be very large, because its big Spring REST project
    – Baterka
    Dec 27 '18 at 16:47












  • Did you check if the relation persists on the database? It might be an example of you unintentionally modifying data before calling the .update
    – dquijada
    Dec 27 '18 at 16:51










  • @dquijada 'User' table still have 'PROFILE_ID' set. But it stop working in other direction
    – Baterka
    Dec 27 '18 at 16:53










  • Can you share the code of how you update the entity?
    – Aditya Narayan Dixit
    Dec 27 '18 at 17:04
















Can you create a Minimal, Complete, and Verifiable Example? Having more code might help us find what's wrong, but having too much can be harmful.
– dquijada
Dec 27 '18 at 16:46






Can you create a Minimal, Complete, and Verifiable Example? Having more code might help us find what's wrong, but having too much can be harmful.
– dquijada
Dec 27 '18 at 16:46














@dquijada I know but I cannot post even minimal example. It will be very large, because its big Spring REST project
– Baterka
Dec 27 '18 at 16:47






@dquijada I know but I cannot post even minimal example. It will be very large, because its big Spring REST project
– Baterka
Dec 27 '18 at 16:47














Did you check if the relation persists on the database? It might be an example of you unintentionally modifying data before calling the .update
– dquijada
Dec 27 '18 at 16:51




Did you check if the relation persists on the database? It might be an example of you unintentionally modifying data before calling the .update
– dquijada
Dec 27 '18 at 16:51












@dquijada 'User' table still have 'PROFILE_ID' set. But it stop working in other direction
– Baterka
Dec 27 '18 at 16:53




@dquijada 'User' table still have 'PROFILE_ID' set. But it stop working in other direction
– Baterka
Dec 27 '18 at 16:53












Can you share the code of how you update the entity?
– Aditya Narayan Dixit
Dec 27 '18 at 17:04




Can you share the code of how you update the entity?
– Aditya Narayan Dixit
Dec 27 '18 at 17:04












1 Answer
1






active

oldest

votes


















0














I fixed problem.
It was caused by not setting User into Profile before updating, because 'dao.update()' just replacing data, not actually updating them.






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%2f53948093%2fjava-jpa-onetoone-relation-breaks-after-updating%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














    I fixed problem.
    It was caused by not setting User into Profile before updating, because 'dao.update()' just replacing data, not actually updating them.






    share|improve this answer


























      0














      I fixed problem.
      It was caused by not setting User into Profile before updating, because 'dao.update()' just replacing data, not actually updating them.






      share|improve this answer
























        0












        0








        0






        I fixed problem.
        It was caused by not setting User into Profile before updating, because 'dao.update()' just replacing data, not actually updating them.






        share|improve this answer












        I fixed problem.
        It was caused by not setting User into Profile before updating, because 'dao.update()' just replacing data, not actually updating them.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Dec 27 '18 at 17:45









        Baterka

        218




        218






























            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%2f53948093%2fjava-jpa-onetoone-relation-breaks-after-updating%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

            Monofisismo

            Angular Downloading a file using contenturl with Basic Authentication

            Olmecas