JPA em.find(id) works on Oracle but not on MariaDB












0















Hello I have an application which runs on JBoss EAP 7 with JPA Hibernate.



I have problems with a simple entityManager.find(id) call.



The call produces against an Oracle 12 database one SQL



select messagedat0_.id as id1_4_0_,
messagedat0_.messageid as messageid3_4_0_,
messagedat0_.messageblob as messageblob2_4_0_,
messagedat0_.messagetype as messagetype4_4_0_,
messagedat0_.retaintime as retaintime5_4_0_,
extractedv1_.messageid as messageid1_1_1_,
extractedv1_.absender as absender2_1_1_,
extractedv1_.empfaenger as empfaenger3_1_1_,
extractedv1_.nachrichtentyp as nachrichtentyp4_1_1_,
extractedv1_.uuid as uuid5_1_1_
from messagedata messagedat0_
left outer join ExtractedValues extractedv1_ on messagedat0_.messageid=extractedv1_.messageid
where messagedat0_.id=?


which returns the entity.



Against a MariaDB it produces TWO SELECTS
Hibernate:



select messagedat0_.id as id1_4_0_,
messagedat0_.messageid as messagei3_4_0_,
messagedat0_.messageblob as messageb2_4_0_,
messagedat0_.messagetype as messaget4_4_0_,
messagedat0_.retaintime as retainti5_4_0_,
extractedv1_.messageid as messagei1_1_1_,
extractedv1_.absender as absender2_1_1_,
extractedv1_.empfaenger as empfaeng3_1_1_,
extractedv1_.nachrichtentyp as nachrich4_1_1_,
extractedv1_.uuid as uuid5_1_1_
from messagedata messagedat0_
left outer join ExtractedValues extractedv1_ on messagedat0_.messageid=extractedv1_.messageid
where messagedat0_.id=?

2018-11-22 09:46:36,328 INFO [stdout] (default task-26) Hibernate:
select extractedv0_.messageid as messagei1_1_0_,
extractedv0_.absender as absender2_1_0_,
extractedv0_.empfaenger as empfaeng3_1_0_,
extractedv0_.nachrichtentyp as nachrich4_1_0_,
extractedv0_.uuid as uuid5_1_0_
from ExtractedValues extractedv0_ where extractedv0_.messageid=?


When I run the two selects manually the first Select does return a row the second not.
This causes the find Method to return NULL. Which is not the expected result in my opinion.



from the
Messagedata Entity:



@Id
private String id;

@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="messageid", referencedColumnName="messageid", updatable=false)
private Set<Msginformation> msginformations;

@OneToMany
@JoinColumn(name="messageid", referencedColumnName="messageid")
private Set<Protocol> protocols;

@OneToMany
@JoinColumn(name="messageid", referencedColumnName="messageid")
private Set<Retry> retries;

@OneToOne
@JoinColumn(name="messageid", referencedColumnName="messageid", insertable=false, updatable=false)
private ExtractedValues extractedValues;


The OneToOne Relationship to ExtractedValues causes the problems on MariaDB.
I have tried to set



<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>


in persistence.xml, but this does not solve the problem.
I have no idea what to do about this…










share|improve this question





























    0















    Hello I have an application which runs on JBoss EAP 7 with JPA Hibernate.



    I have problems with a simple entityManager.find(id) call.



    The call produces against an Oracle 12 database one SQL



    select messagedat0_.id as id1_4_0_,
    messagedat0_.messageid as messageid3_4_0_,
    messagedat0_.messageblob as messageblob2_4_0_,
    messagedat0_.messagetype as messagetype4_4_0_,
    messagedat0_.retaintime as retaintime5_4_0_,
    extractedv1_.messageid as messageid1_1_1_,
    extractedv1_.absender as absender2_1_1_,
    extractedv1_.empfaenger as empfaenger3_1_1_,
    extractedv1_.nachrichtentyp as nachrichtentyp4_1_1_,
    extractedv1_.uuid as uuid5_1_1_
    from messagedata messagedat0_
    left outer join ExtractedValues extractedv1_ on messagedat0_.messageid=extractedv1_.messageid
    where messagedat0_.id=?


    which returns the entity.



    Against a MariaDB it produces TWO SELECTS
    Hibernate:



    select messagedat0_.id as id1_4_0_,
    messagedat0_.messageid as messagei3_4_0_,
    messagedat0_.messageblob as messageb2_4_0_,
    messagedat0_.messagetype as messaget4_4_0_,
    messagedat0_.retaintime as retainti5_4_0_,
    extractedv1_.messageid as messagei1_1_1_,
    extractedv1_.absender as absender2_1_1_,
    extractedv1_.empfaenger as empfaeng3_1_1_,
    extractedv1_.nachrichtentyp as nachrich4_1_1_,
    extractedv1_.uuid as uuid5_1_1_
    from messagedata messagedat0_
    left outer join ExtractedValues extractedv1_ on messagedat0_.messageid=extractedv1_.messageid
    where messagedat0_.id=?

    2018-11-22 09:46:36,328 INFO [stdout] (default task-26) Hibernate:
    select extractedv0_.messageid as messagei1_1_0_,
    extractedv0_.absender as absender2_1_0_,
    extractedv0_.empfaenger as empfaeng3_1_0_,
    extractedv0_.nachrichtentyp as nachrich4_1_0_,
    extractedv0_.uuid as uuid5_1_0_
    from ExtractedValues extractedv0_ where extractedv0_.messageid=?


    When I run the two selects manually the first Select does return a row the second not.
    This causes the find Method to return NULL. Which is not the expected result in my opinion.



    from the
    Messagedata Entity:



    @Id
    private String id;

    @OneToMany(cascade=CascadeType.ALL)
    @JoinColumn(name="messageid", referencedColumnName="messageid", updatable=false)
    private Set<Msginformation> msginformations;

    @OneToMany
    @JoinColumn(name="messageid", referencedColumnName="messageid")
    private Set<Protocol> protocols;

    @OneToMany
    @JoinColumn(name="messageid", referencedColumnName="messageid")
    private Set<Retry> retries;

    @OneToOne
    @JoinColumn(name="messageid", referencedColumnName="messageid", insertable=false, updatable=false)
    private ExtractedValues extractedValues;


    The OneToOne Relationship to ExtractedValues causes the problems on MariaDB.
    I have tried to set



    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>


    in persistence.xml, but this does not solve the problem.
    I have no idea what to do about this…










    share|improve this question



























      0












      0








      0








      Hello I have an application which runs on JBoss EAP 7 with JPA Hibernate.



      I have problems with a simple entityManager.find(id) call.



      The call produces against an Oracle 12 database one SQL



      select messagedat0_.id as id1_4_0_,
      messagedat0_.messageid as messageid3_4_0_,
      messagedat0_.messageblob as messageblob2_4_0_,
      messagedat0_.messagetype as messagetype4_4_0_,
      messagedat0_.retaintime as retaintime5_4_0_,
      extractedv1_.messageid as messageid1_1_1_,
      extractedv1_.absender as absender2_1_1_,
      extractedv1_.empfaenger as empfaenger3_1_1_,
      extractedv1_.nachrichtentyp as nachrichtentyp4_1_1_,
      extractedv1_.uuid as uuid5_1_1_
      from messagedata messagedat0_
      left outer join ExtractedValues extractedv1_ on messagedat0_.messageid=extractedv1_.messageid
      where messagedat0_.id=?


      which returns the entity.



      Against a MariaDB it produces TWO SELECTS
      Hibernate:



      select messagedat0_.id as id1_4_0_,
      messagedat0_.messageid as messagei3_4_0_,
      messagedat0_.messageblob as messageb2_4_0_,
      messagedat0_.messagetype as messaget4_4_0_,
      messagedat0_.retaintime as retainti5_4_0_,
      extractedv1_.messageid as messagei1_1_1_,
      extractedv1_.absender as absender2_1_1_,
      extractedv1_.empfaenger as empfaeng3_1_1_,
      extractedv1_.nachrichtentyp as nachrich4_1_1_,
      extractedv1_.uuid as uuid5_1_1_
      from messagedata messagedat0_
      left outer join ExtractedValues extractedv1_ on messagedat0_.messageid=extractedv1_.messageid
      where messagedat0_.id=?

      2018-11-22 09:46:36,328 INFO [stdout] (default task-26) Hibernate:
      select extractedv0_.messageid as messagei1_1_0_,
      extractedv0_.absender as absender2_1_0_,
      extractedv0_.empfaenger as empfaeng3_1_0_,
      extractedv0_.nachrichtentyp as nachrich4_1_0_,
      extractedv0_.uuid as uuid5_1_0_
      from ExtractedValues extractedv0_ where extractedv0_.messageid=?


      When I run the two selects manually the first Select does return a row the second not.
      This causes the find Method to return NULL. Which is not the expected result in my opinion.



      from the
      Messagedata Entity:



      @Id
      private String id;

      @OneToMany(cascade=CascadeType.ALL)
      @JoinColumn(name="messageid", referencedColumnName="messageid", updatable=false)
      private Set<Msginformation> msginformations;

      @OneToMany
      @JoinColumn(name="messageid", referencedColumnName="messageid")
      private Set<Protocol> protocols;

      @OneToMany
      @JoinColumn(name="messageid", referencedColumnName="messageid")
      private Set<Retry> retries;

      @OneToOne
      @JoinColumn(name="messageid", referencedColumnName="messageid", insertable=false, updatable=false)
      private ExtractedValues extractedValues;


      The OneToOne Relationship to ExtractedValues causes the problems on MariaDB.
      I have tried to set



      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>


      in persistence.xml, but this does not solve the problem.
      I have no idea what to do about this…










      share|improve this question
















      Hello I have an application which runs on JBoss EAP 7 with JPA Hibernate.



      I have problems with a simple entityManager.find(id) call.



      The call produces against an Oracle 12 database one SQL



      select messagedat0_.id as id1_4_0_,
      messagedat0_.messageid as messageid3_4_0_,
      messagedat0_.messageblob as messageblob2_4_0_,
      messagedat0_.messagetype as messagetype4_4_0_,
      messagedat0_.retaintime as retaintime5_4_0_,
      extractedv1_.messageid as messageid1_1_1_,
      extractedv1_.absender as absender2_1_1_,
      extractedv1_.empfaenger as empfaenger3_1_1_,
      extractedv1_.nachrichtentyp as nachrichtentyp4_1_1_,
      extractedv1_.uuid as uuid5_1_1_
      from messagedata messagedat0_
      left outer join ExtractedValues extractedv1_ on messagedat0_.messageid=extractedv1_.messageid
      where messagedat0_.id=?


      which returns the entity.



      Against a MariaDB it produces TWO SELECTS
      Hibernate:



      select messagedat0_.id as id1_4_0_,
      messagedat0_.messageid as messagei3_4_0_,
      messagedat0_.messageblob as messageb2_4_0_,
      messagedat0_.messagetype as messaget4_4_0_,
      messagedat0_.retaintime as retainti5_4_0_,
      extractedv1_.messageid as messagei1_1_1_,
      extractedv1_.absender as absender2_1_1_,
      extractedv1_.empfaenger as empfaeng3_1_1_,
      extractedv1_.nachrichtentyp as nachrich4_1_1_,
      extractedv1_.uuid as uuid5_1_1_
      from messagedata messagedat0_
      left outer join ExtractedValues extractedv1_ on messagedat0_.messageid=extractedv1_.messageid
      where messagedat0_.id=?

      2018-11-22 09:46:36,328 INFO [stdout] (default task-26) Hibernate:
      select extractedv0_.messageid as messagei1_1_0_,
      extractedv0_.absender as absender2_1_0_,
      extractedv0_.empfaenger as empfaeng3_1_0_,
      extractedv0_.nachrichtentyp as nachrich4_1_0_,
      extractedv0_.uuid as uuid5_1_0_
      from ExtractedValues extractedv0_ where extractedv0_.messageid=?


      When I run the two selects manually the first Select does return a row the second not.
      This causes the find Method to return NULL. Which is not the expected result in my opinion.



      from the
      Messagedata Entity:



      @Id
      private String id;

      @OneToMany(cascade=CascadeType.ALL)
      @JoinColumn(name="messageid", referencedColumnName="messageid", updatable=false)
      private Set<Msginformation> msginformations;

      @OneToMany
      @JoinColumn(name="messageid", referencedColumnName="messageid")
      private Set<Protocol> protocols;

      @OneToMany
      @JoinColumn(name="messageid", referencedColumnName="messageid")
      private Set<Retry> retries;

      @OneToOne
      @JoinColumn(name="messageid", referencedColumnName="messageid", insertable=false, updatable=false)
      private ExtractedValues extractedValues;


      The OneToOne Relationship to ExtractedValues causes the problems on MariaDB.
      I have tried to set



      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>


      in persistence.xml, but this does not solve the problem.
      I have no idea what to do about this…







      oracle hibernate jpa mariadb






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 23 '18 at 6:18









      fhossfel

      1,371721




      1,371721










      asked Nov 22 '18 at 11:53









      HansHans

      366




      366
























          3 Answers
          3






          active

          oldest

          votes


















          1














          I would suggest you to use either of the below dialects :



          org.hibernate.dialect.MariaDBDialect


          or



          org.hibernate.dialect.MariaDB53Dialect





          share|improve this answer
























          • Thanks for your anwers.

            – Hans
            Nov 23 '18 at 11:52











          • Please accept the answer if the solution provided worked :)

            – codeLover
            Nov 26 '18 at 8:23



















          0














          I hope you are not passing proper dialect. Please check the dialect.



          You can use below dialect.



          org.hibernate.dialect.MariaDBDialect





          share|improve this answer































            0














            Thanks for your answers
            I have tried both dialects with



                   <property name="hibernate.dialect" value="org.hibernate.dialect.MariaDB53Dialect"/>


            Unfortunetly JBoss then refuses to deploy the war



            Unable to resolve name [org.hibernate.dialect.MariaDBDialect] as strategy [org.hibernate.dialect.Dialect]



            Unable to resolve name [org.hibernate.dialect.MariaDB53Dialect] as strategy [org.hibernate.dialect.Dialect]






            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%2f53430458%2fjpa-em-findid-works-on-oracle-but-not-on-mariadb%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              1














              I would suggest you to use either of the below dialects :



              org.hibernate.dialect.MariaDBDialect


              or



              org.hibernate.dialect.MariaDB53Dialect





              share|improve this answer
























              • Thanks for your anwers.

                – Hans
                Nov 23 '18 at 11:52











              • Please accept the answer if the solution provided worked :)

                – codeLover
                Nov 26 '18 at 8:23
















              1














              I would suggest you to use either of the below dialects :



              org.hibernate.dialect.MariaDBDialect


              or



              org.hibernate.dialect.MariaDB53Dialect





              share|improve this answer
























              • Thanks for your anwers.

                – Hans
                Nov 23 '18 at 11:52











              • Please accept the answer if the solution provided worked :)

                – codeLover
                Nov 26 '18 at 8:23














              1












              1








              1







              I would suggest you to use either of the below dialects :



              org.hibernate.dialect.MariaDBDialect


              or



              org.hibernate.dialect.MariaDB53Dialect





              share|improve this answer













              I would suggest you to use either of the below dialects :



              org.hibernate.dialect.MariaDBDialect


              or



              org.hibernate.dialect.MariaDB53Dialect






              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Nov 22 '18 at 12:11









              codeLovercodeLover

              2,2551620




              2,2551620













              • Thanks for your anwers.

                – Hans
                Nov 23 '18 at 11:52











              • Please accept the answer if the solution provided worked :)

                – codeLover
                Nov 26 '18 at 8:23



















              • Thanks for your anwers.

                – Hans
                Nov 23 '18 at 11:52











              • Please accept the answer if the solution provided worked :)

                – codeLover
                Nov 26 '18 at 8:23

















              Thanks for your anwers.

              – Hans
              Nov 23 '18 at 11:52





              Thanks for your anwers.

              – Hans
              Nov 23 '18 at 11:52













              Please accept the answer if the solution provided worked :)

              – codeLover
              Nov 26 '18 at 8:23





              Please accept the answer if the solution provided worked :)

              – codeLover
              Nov 26 '18 at 8:23













              0














              I hope you are not passing proper dialect. Please check the dialect.



              You can use below dialect.



              org.hibernate.dialect.MariaDBDialect





              share|improve this answer




























                0














                I hope you are not passing proper dialect. Please check the dialect.



                You can use below dialect.



                org.hibernate.dialect.MariaDBDialect





                share|improve this answer


























                  0












                  0








                  0







                  I hope you are not passing proper dialect. Please check the dialect.



                  You can use below dialect.



                  org.hibernate.dialect.MariaDBDialect





                  share|improve this answer













                  I hope you are not passing proper dialect. Please check the dialect.



                  You can use below dialect.



                  org.hibernate.dialect.MariaDBDialect






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 23 '18 at 6:21









                  DK AnshDK Ansh

                  293216




                  293216























                      0














                      Thanks for your answers
                      I have tried both dialects with



                             <property name="hibernate.dialect" value="org.hibernate.dialect.MariaDB53Dialect"/>


                      Unfortunetly JBoss then refuses to deploy the war



                      Unable to resolve name [org.hibernate.dialect.MariaDBDialect] as strategy [org.hibernate.dialect.Dialect]



                      Unable to resolve name [org.hibernate.dialect.MariaDB53Dialect] as strategy [org.hibernate.dialect.Dialect]






                      share|improve this answer




























                        0














                        Thanks for your answers
                        I have tried both dialects with



                               <property name="hibernate.dialect" value="org.hibernate.dialect.MariaDB53Dialect"/>


                        Unfortunetly JBoss then refuses to deploy the war



                        Unable to resolve name [org.hibernate.dialect.MariaDBDialect] as strategy [org.hibernate.dialect.Dialect]



                        Unable to resolve name [org.hibernate.dialect.MariaDB53Dialect] as strategy [org.hibernate.dialect.Dialect]






                        share|improve this answer


























                          0












                          0








                          0







                          Thanks for your answers
                          I have tried both dialects with



                                 <property name="hibernate.dialect" value="org.hibernate.dialect.MariaDB53Dialect"/>


                          Unfortunetly JBoss then refuses to deploy the war



                          Unable to resolve name [org.hibernate.dialect.MariaDBDialect] as strategy [org.hibernate.dialect.Dialect]



                          Unable to resolve name [org.hibernate.dialect.MariaDB53Dialect] as strategy [org.hibernate.dialect.Dialect]






                          share|improve this answer













                          Thanks for your answers
                          I have tried both dialects with



                                 <property name="hibernate.dialect" value="org.hibernate.dialect.MariaDB53Dialect"/>


                          Unfortunetly JBoss then refuses to deploy the war



                          Unable to resolve name [org.hibernate.dialect.MariaDBDialect] as strategy [org.hibernate.dialect.Dialect]



                          Unable to resolve name [org.hibernate.dialect.MariaDB53Dialect] as strategy [org.hibernate.dialect.Dialect]







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 23 '18 at 11:52









                          HansHans

                          366




                          366






























                              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%2f53430458%2fjpa-em-findid-works-on-oracle-but-not-on-mariadb%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







                              這個網誌中的熱門文章

                              Academy of Television Arts & Sciences

                              L'Équipe

                              1995 France bombings