Passing optional parameter to JdbcTemplate
I have an issue with JdbcTemplate when passing parameters objects with null reference.
Given that I have the following test data:
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (1,'TEST')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (2,'TEST_2')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (3, NULL)");
Following code doesn't retrieve anything:
String contentArg = null;
List<Entity> entityList_3 = jdbcTemplate.query("SELECT * FROM TEST_TABLE WHERE CONTENT = ?", new BeanPropertyRowMapper<>(Entity.class), contentArg);
Is there any way I could fix this, just using JdbcTemplate.
java spring-jdbc
add a comment |
I have an issue with JdbcTemplate when passing parameters objects with null reference.
Given that I have the following test data:
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (1,'TEST')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (2,'TEST_2')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (3, NULL)");
Following code doesn't retrieve anything:
String contentArg = null;
List<Entity> entityList_3 = jdbcTemplate.query("SELECT * FROM TEST_TABLE WHERE CONTENT = ?", new BeanPropertyRowMapper<>(Entity.class), contentArg);
Is there any way I could fix this, just using JdbcTemplate.
java spring-jdbc
add a comment |
I have an issue with JdbcTemplate when passing parameters objects with null reference.
Given that I have the following test data:
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (1,'TEST')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (2,'TEST_2')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (3, NULL)");
Following code doesn't retrieve anything:
String contentArg = null;
List<Entity> entityList_3 = jdbcTemplate.query("SELECT * FROM TEST_TABLE WHERE CONTENT = ?", new BeanPropertyRowMapper<>(Entity.class), contentArg);
Is there any way I could fix this, just using JdbcTemplate.
java spring-jdbc
I have an issue with JdbcTemplate when passing parameters objects with null reference.
Given that I have the following test data:
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (1,'TEST')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (2,'TEST_2')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (3, NULL)");
Following code doesn't retrieve anything:
String contentArg = null;
List<Entity> entityList_3 = jdbcTemplate.query("SELECT * FROM TEST_TABLE WHERE CONTENT = ?", new BeanPropertyRowMapper<>(Entity.class), contentArg);
Is there any way I could fix this, just using JdbcTemplate.
java spring-jdbc
java spring-jdbc
asked Dec 31 '18 at 15:10
CristiCristi
508
508
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Use Oracle NVL function to support optional parameter:
WHERE CONTENT = NVL(?, CONTENT) "
Thanks. Unfortunately we don't use Oracle database. We have SOLID (from IBM) and as far as I know they don't have NVL.
– Cristi
Dec 31 '18 at 15:21
@Cristi maybe you can use decode function ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/src/tpc/…
– user7294900
Dec 31 '18 at 15:40
There is no DECODE function.
– Cristi
Jan 3 at 12:11
Error: [Solid JDBC 7.0.0.0 Build 2011-10-14] SOLID SQL Error 51: non-existent function 'DECODE' SQLState: HY000 ErrorCode: 51
– Cristi
Jan 3 at 12:16
add a comment |
I've been able to solve this by modifying the query.
In my case, I was using IBM solidDb and the fix contains in using IFNULL function.
AND IFNULL(CONTENT,'') = IFNULL(?,'')
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53988868%2fpassing-optional-parameter-to-jdbctemplate%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
Use Oracle NVL function to support optional parameter:
WHERE CONTENT = NVL(?, CONTENT) "
Thanks. Unfortunately we don't use Oracle database. We have SOLID (from IBM) and as far as I know they don't have NVL.
– Cristi
Dec 31 '18 at 15:21
@Cristi maybe you can use decode function ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/src/tpc/…
– user7294900
Dec 31 '18 at 15:40
There is no DECODE function.
– Cristi
Jan 3 at 12:11
Error: [Solid JDBC 7.0.0.0 Build 2011-10-14] SOLID SQL Error 51: non-existent function 'DECODE' SQLState: HY000 ErrorCode: 51
– Cristi
Jan 3 at 12:16
add a comment |
Use Oracle NVL function to support optional parameter:
WHERE CONTENT = NVL(?, CONTENT) "
Thanks. Unfortunately we don't use Oracle database. We have SOLID (from IBM) and as far as I know they don't have NVL.
– Cristi
Dec 31 '18 at 15:21
@Cristi maybe you can use decode function ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/src/tpc/…
– user7294900
Dec 31 '18 at 15:40
There is no DECODE function.
– Cristi
Jan 3 at 12:11
Error: [Solid JDBC 7.0.0.0 Build 2011-10-14] SOLID SQL Error 51: non-existent function 'DECODE' SQLState: HY000 ErrorCode: 51
– Cristi
Jan 3 at 12:16
add a comment |
Use Oracle NVL function to support optional parameter:
WHERE CONTENT = NVL(?, CONTENT) "
Use Oracle NVL function to support optional parameter:
WHERE CONTENT = NVL(?, CONTENT) "
answered Dec 31 '18 at 15:16
user7294900user7294900
22.2k113360
22.2k113360
Thanks. Unfortunately we don't use Oracle database. We have SOLID (from IBM) and as far as I know they don't have NVL.
– Cristi
Dec 31 '18 at 15:21
@Cristi maybe you can use decode function ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/src/tpc/…
– user7294900
Dec 31 '18 at 15:40
There is no DECODE function.
– Cristi
Jan 3 at 12:11
Error: [Solid JDBC 7.0.0.0 Build 2011-10-14] SOLID SQL Error 51: non-existent function 'DECODE' SQLState: HY000 ErrorCode: 51
– Cristi
Jan 3 at 12:16
add a comment |
Thanks. Unfortunately we don't use Oracle database. We have SOLID (from IBM) and as far as I know they don't have NVL.
– Cristi
Dec 31 '18 at 15:21
@Cristi maybe you can use decode function ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/src/tpc/…
– user7294900
Dec 31 '18 at 15:40
There is no DECODE function.
– Cristi
Jan 3 at 12:11
Error: [Solid JDBC 7.0.0.0 Build 2011-10-14] SOLID SQL Error 51: non-existent function 'DECODE' SQLState: HY000 ErrorCode: 51
– Cristi
Jan 3 at 12:16
Thanks. Unfortunately we don't use Oracle database. We have SOLID (from IBM) and as far as I know they don't have NVL.
– Cristi
Dec 31 '18 at 15:21
Thanks. Unfortunately we don't use Oracle database. We have SOLID (from IBM) and as far as I know they don't have NVL.
– Cristi
Dec 31 '18 at 15:21
@Cristi maybe you can use decode function ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/src/tpc/…
– user7294900
Dec 31 '18 at 15:40
@Cristi maybe you can use decode function ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/src/tpc/…
– user7294900
Dec 31 '18 at 15:40
There is no DECODE function.
– Cristi
Jan 3 at 12:11
There is no DECODE function.
– Cristi
Jan 3 at 12:11
Error: [Solid JDBC 7.0.0.0 Build 2011-10-14] SOLID SQL Error 51: non-existent function 'DECODE' SQLState: HY000 ErrorCode: 51
– Cristi
Jan 3 at 12:16
Error: [Solid JDBC 7.0.0.0 Build 2011-10-14] SOLID SQL Error 51: non-existent function 'DECODE' SQLState: HY000 ErrorCode: 51
– Cristi
Jan 3 at 12:16
add a comment |
I've been able to solve this by modifying the query.
In my case, I was using IBM solidDb and the fix contains in using IFNULL function.
AND IFNULL(CONTENT,'') = IFNULL(?,'')
add a comment |
I've been able to solve this by modifying the query.
In my case, I was using IBM solidDb and the fix contains in using IFNULL function.
AND IFNULL(CONTENT,'') = IFNULL(?,'')
add a comment |
I've been able to solve this by modifying the query.
In my case, I was using IBM solidDb and the fix contains in using IFNULL function.
AND IFNULL(CONTENT,'') = IFNULL(?,'')
I've been able to solve this by modifying the query.
In my case, I was using IBM solidDb and the fix contains in using IFNULL function.
AND IFNULL(CONTENT,'') = IFNULL(?,'')
answered Jan 3 at 12:11
CristiCristi
508
508
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53988868%2fpassing-optional-parameter-to-jdbctemplate%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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