Hibernate escaping “:” character











up vote
0
down vote

favorite












I've found some posts here and some answers. I've tried every each of them with bad results. I don't want to use stored procedures.



I'm using Hibernate in Java, with MySQL. Some of my query string is:



SET @rank = 0; 
SET @limit = 0.1;
SELECT (@limit := ROUND(COUNT(id) * @limit)) FROM Pics;
SELECT Q1.popularity FROM Pics AS p INNER JOIN (
SELECT IF((@rank := @rank + 1) <= @limit, true, false) AS 'popularity', p.id
FROM Pics AS p
ORDER BY p.points DESC
) AS Q1 ON Q1.id = p.id WHERE p.id = 7;


Some people said a solution is using /*'*/:=/*'*/ inside the query (post), but it doesn't work for me:



SET @rank = 0; 
SET @limit = 0.1;
SELECT (@limit /*'*/:=/*'*/ ROUND(COUNT(id) * @limit)) FROM Pics;
SELECT Q1.popularity FROM Pics AS p INNER JOIN (
SELECT IF((@rank /*'*/:=/*'*/ @rank + 1) <= @limit, true, false) AS 'popularity', p.id
FROM Pics AS p
ORDER BY p.points DESC
) AS Q1 ON Q1.id = p.id WHERE p.id = 7;


I'm despereted!



Any idea, please? I'd be so grateful!



Thanks!










share|improve this question
























  • What is the logic behind your query?
    – Tim Biegeleisen
    2 days ago










  • Don't think about that, is just a example. It's not the full query, only pieces of code with the ":=" characters.
    – Ommadawn
    2 days ago










  • Well I'm thinking about it. In particular, I'm thinking you should avoid using session variables with Hibernate, and maybe I can give you a workaround.
    – Tim Biegeleisen
    2 days ago










  • Ok, I'll edit the query and put the original example.
    – Ommadawn
    2 days ago















up vote
0
down vote

favorite












I've found some posts here and some answers. I've tried every each of them with bad results. I don't want to use stored procedures.



I'm using Hibernate in Java, with MySQL. Some of my query string is:



SET @rank = 0; 
SET @limit = 0.1;
SELECT (@limit := ROUND(COUNT(id) * @limit)) FROM Pics;
SELECT Q1.popularity FROM Pics AS p INNER JOIN (
SELECT IF((@rank := @rank + 1) <= @limit, true, false) AS 'popularity', p.id
FROM Pics AS p
ORDER BY p.points DESC
) AS Q1 ON Q1.id = p.id WHERE p.id = 7;


Some people said a solution is using /*'*/:=/*'*/ inside the query (post), but it doesn't work for me:



SET @rank = 0; 
SET @limit = 0.1;
SELECT (@limit /*'*/:=/*'*/ ROUND(COUNT(id) * @limit)) FROM Pics;
SELECT Q1.popularity FROM Pics AS p INNER JOIN (
SELECT IF((@rank /*'*/:=/*'*/ @rank + 1) <= @limit, true, false) AS 'popularity', p.id
FROM Pics AS p
ORDER BY p.points DESC
) AS Q1 ON Q1.id = p.id WHERE p.id = 7;


I'm despereted!



Any idea, please? I'd be so grateful!



Thanks!










share|improve this question
























  • What is the logic behind your query?
    – Tim Biegeleisen
    2 days ago










  • Don't think about that, is just a example. It's not the full query, only pieces of code with the ":=" characters.
    – Ommadawn
    2 days ago










  • Well I'm thinking about it. In particular, I'm thinking you should avoid using session variables with Hibernate, and maybe I can give you a workaround.
    – Tim Biegeleisen
    2 days ago










  • Ok, I'll edit the query and put the original example.
    – Ommadawn
    2 days ago













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I've found some posts here and some answers. I've tried every each of them with bad results. I don't want to use stored procedures.



I'm using Hibernate in Java, with MySQL. Some of my query string is:



SET @rank = 0; 
SET @limit = 0.1;
SELECT (@limit := ROUND(COUNT(id) * @limit)) FROM Pics;
SELECT Q1.popularity FROM Pics AS p INNER JOIN (
SELECT IF((@rank := @rank + 1) <= @limit, true, false) AS 'popularity', p.id
FROM Pics AS p
ORDER BY p.points DESC
) AS Q1 ON Q1.id = p.id WHERE p.id = 7;


Some people said a solution is using /*'*/:=/*'*/ inside the query (post), but it doesn't work for me:



SET @rank = 0; 
SET @limit = 0.1;
SELECT (@limit /*'*/:=/*'*/ ROUND(COUNT(id) * @limit)) FROM Pics;
SELECT Q1.popularity FROM Pics AS p INNER JOIN (
SELECT IF((@rank /*'*/:=/*'*/ @rank + 1) <= @limit, true, false) AS 'popularity', p.id
FROM Pics AS p
ORDER BY p.points DESC
) AS Q1 ON Q1.id = p.id WHERE p.id = 7;


I'm despereted!



Any idea, please? I'd be so grateful!



Thanks!










share|improve this question















I've found some posts here and some answers. I've tried every each of them with bad results. I don't want to use stored procedures.



I'm using Hibernate in Java, with MySQL. Some of my query string is:



SET @rank = 0; 
SET @limit = 0.1;
SELECT (@limit := ROUND(COUNT(id) * @limit)) FROM Pics;
SELECT Q1.popularity FROM Pics AS p INNER JOIN (
SELECT IF((@rank := @rank + 1) <= @limit, true, false) AS 'popularity', p.id
FROM Pics AS p
ORDER BY p.points DESC
) AS Q1 ON Q1.id = p.id WHERE p.id = 7;


Some people said a solution is using /*'*/:=/*'*/ inside the query (post), but it doesn't work for me:



SET @rank = 0; 
SET @limit = 0.1;
SELECT (@limit /*'*/:=/*'*/ ROUND(COUNT(id) * @limit)) FROM Pics;
SELECT Q1.popularity FROM Pics AS p INNER JOIN (
SELECT IF((@rank /*'*/:=/*'*/ @rank + 1) <= @limit, true, false) AS 'popularity', p.id
FROM Pics AS p
ORDER BY p.points DESC
) AS Q1 ON Q1.id = p.id WHERE p.id = 7;


I'm despereted!



Any idea, please? I'd be so grateful!



Thanks!







mysql hibernate






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited yesterday

























asked 2 days ago









Ommadawn

165115




165115












  • What is the logic behind your query?
    – Tim Biegeleisen
    2 days ago










  • Don't think about that, is just a example. It's not the full query, only pieces of code with the ":=" characters.
    – Ommadawn
    2 days ago










  • Well I'm thinking about it. In particular, I'm thinking you should avoid using session variables with Hibernate, and maybe I can give you a workaround.
    – Tim Biegeleisen
    2 days ago










  • Ok, I'll edit the query and put the original example.
    – Ommadawn
    2 days ago


















  • What is the logic behind your query?
    – Tim Biegeleisen
    2 days ago










  • Don't think about that, is just a example. It's not the full query, only pieces of code with the ":=" characters.
    – Ommadawn
    2 days ago










  • Well I'm thinking about it. In particular, I'm thinking you should avoid using session variables with Hibernate, and maybe I can give you a workaround.
    – Tim Biegeleisen
    2 days ago










  • Ok, I'll edit the query and put the original example.
    – Ommadawn
    2 days ago
















What is the logic behind your query?
– Tim Biegeleisen
2 days ago




What is the logic behind your query?
– Tim Biegeleisen
2 days ago












Don't think about that, is just a example. It's not the full query, only pieces of code with the ":=" characters.
– Ommadawn
2 days ago




Don't think about that, is just a example. It's not the full query, only pieces of code with the ":=" characters.
– Ommadawn
2 days ago












Well I'm thinking about it. In particular, I'm thinking you should avoid using session variables with Hibernate, and maybe I can give you a workaround.
– Tim Biegeleisen
2 days ago




Well I'm thinking about it. In particular, I'm thinking you should avoid using session variables with Hibernate, and maybe I can give you a workaround.
– Tim Biegeleisen
2 days ago












Ok, I'll edit the query and put the original example.
– Ommadawn
2 days ago




Ok, I'll edit the query and put the original example.
– Ommadawn
2 days ago












1 Answer
1






active

oldest

votes

















up vote
0
down vote



accepted










Finally I could fix it using double backslash inside the Java query code:



SET @rank = 0; 
SET @limit = 0.1;
SELECT (@limit \:= ROUND(COUNT(id) * @limit)) FROM Pics;
SELECT Q1.popularity FROM Pics AS p INNER JOIN (
SELECT IF((@rank \:= @rank + 1) <= @limit, true, false) AS 'popularity', p.id
FROM Pics AS p
ORDER BY p.points DESC
) AS Q1 ON Q1.id = p.id WHERE p.id = 7;





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',
    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%2f53222466%2fhibernate-escaping-character%23new-answer', 'question_page');
    }
    );

    Post as a guest
































    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote



    accepted










    Finally I could fix it using double backslash inside the Java query code:



    SET @rank = 0; 
    SET @limit = 0.1;
    SELECT (@limit \:= ROUND(COUNT(id) * @limit)) FROM Pics;
    SELECT Q1.popularity FROM Pics AS p INNER JOIN (
    SELECT IF((@rank \:= @rank + 1) <= @limit, true, false) AS 'popularity', p.id
    FROM Pics AS p
    ORDER BY p.points DESC
    ) AS Q1 ON Q1.id = p.id WHERE p.id = 7;





    share|improve this answer

























      up vote
      0
      down vote



      accepted










      Finally I could fix it using double backslash inside the Java query code:



      SET @rank = 0; 
      SET @limit = 0.1;
      SELECT (@limit \:= ROUND(COUNT(id) * @limit)) FROM Pics;
      SELECT Q1.popularity FROM Pics AS p INNER JOIN (
      SELECT IF((@rank \:= @rank + 1) <= @limit, true, false) AS 'popularity', p.id
      FROM Pics AS p
      ORDER BY p.points DESC
      ) AS Q1 ON Q1.id = p.id WHERE p.id = 7;





      share|improve this answer























        up vote
        0
        down vote



        accepted







        up vote
        0
        down vote



        accepted






        Finally I could fix it using double backslash inside the Java query code:



        SET @rank = 0; 
        SET @limit = 0.1;
        SELECT (@limit \:= ROUND(COUNT(id) * @limit)) FROM Pics;
        SELECT Q1.popularity FROM Pics AS p INNER JOIN (
        SELECT IF((@rank \:= @rank + 1) <= @limit, true, false) AS 'popularity', p.id
        FROM Pics AS p
        ORDER BY p.points DESC
        ) AS Q1 ON Q1.id = p.id WHERE p.id = 7;





        share|improve this answer












        Finally I could fix it using double backslash inside the Java query code:



        SET @rank = 0; 
        SET @limit = 0.1;
        SELECT (@limit \:= ROUND(COUNT(id) * @limit)) FROM Pics;
        SELECT Q1.popularity FROM Pics AS p INNER JOIN (
        SELECT IF((@rank \:= @rank + 1) <= @limit, true, false) AS 'popularity', p.id
        FROM Pics AS p
        ORDER BY p.points DESC
        ) AS Q1 ON Q1.id = p.id WHERE p.id = 7;






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        Ommadawn

        165115




        165115






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53222466%2fhibernate-escaping-character%23new-answer', 'question_page');
            }
            );

            Post as a guest




















































































            Popular posts from this blog

            Bressuire

            Vorschmack

            Quarantine