Spring data Cassandra converts the keyspace name and table names into lowercase
I'm trying to map existing Cassandra tables into java classes using spring data cassandra. The table names have uppercase letters, for example "MyTable". However, when I use @Table("MyTable"), spring data cassandra doesn't recognize the table because it treats the name as lowercase.
Is there any way to tell spring data cassandra to not convert the names into lowercase?
Sample code:
import org.springframework.data.cassandra.core.mapping.Table;
@Table("MyTable")
public class MyTable {
}
cassandra datastax datastax-java-driver spring-data-cassandra
add a comment |
I'm trying to map existing Cassandra tables into java classes using spring data cassandra. The table names have uppercase letters, for example "MyTable". However, when I use @Table("MyTable"), spring data cassandra doesn't recognize the table because it treats the name as lowercase.
Is there any way to tell spring data cassandra to not convert the names into lowercase?
Sample code:
import org.springframework.data.cassandra.core.mapping.Table;
@Table("MyTable")
public class MyTable {
}
cassandra datastax datastax-java-driver spring-data-cassandra
add a comment |
I'm trying to map existing Cassandra tables into java classes using spring data cassandra. The table names have uppercase letters, for example "MyTable". However, when I use @Table("MyTable"), spring data cassandra doesn't recognize the table because it treats the name as lowercase.
Is there any way to tell spring data cassandra to not convert the names into lowercase?
Sample code:
import org.springframework.data.cassandra.core.mapping.Table;
@Table("MyTable")
public class MyTable {
}
cassandra datastax datastax-java-driver spring-data-cassandra
I'm trying to map existing Cassandra tables into java classes using spring data cassandra. The table names have uppercase letters, for example "MyTable". However, when I use @Table("MyTable"), spring data cassandra doesn't recognize the table because it treats the name as lowercase.
Is there any way to tell spring data cassandra to not convert the names into lowercase?
Sample code:
import org.springframework.data.cassandra.core.mapping.Table;
@Table("MyTable")
public class MyTable {
}
cassandra datastax datastax-java-driver spring-data-cassandra
cassandra datastax datastax-java-driver spring-data-cassandra
asked Jan 18 at 14:06
MAhmedMAhmed
2317
2317
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
In Cassandra's CQL, identifiers like keyspace, table, and column names are case insensitive. If you desire to use mixed case you must quote your names, i.e.:
import org.springframework.data.cassandra.core.mapping.Table;
@Table(""MyTable"")
public class MyTable {
}
That being said, I would highly recommend not using mixed case identifiers. While it works, it creates a lot of complexity in having to worry about quoting everything. The convention I see most with Cassandra is to use all lower case use _
as a separator of words, i.e. my_table
. You can still use MyTable
as your class name to meet java conventions.
Unfortunately, this didn't work. The following exception is thrown: java.lang.IllegalArgumentException: given string ["MyTable"] is not a valid quoted or unquoted identifier
– MAhmed
Jan 18 at 15:17
ah, I didn't realize at the time that there was a separate option for this, glad you figured it out!
– Andy Tolbert
Jan 19 at 2:37
add a comment |
I was able to solve the problem by adding (forceQuote = true) to @Table annotation.
@Table(value = "MyTable", forceQuote = true)
public class MyTable {
}
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%2f54255648%2fspring-data-cassandra-converts-the-keyspace-name-and-table-names-into-lowercase%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
In Cassandra's CQL, identifiers like keyspace, table, and column names are case insensitive. If you desire to use mixed case you must quote your names, i.e.:
import org.springframework.data.cassandra.core.mapping.Table;
@Table(""MyTable"")
public class MyTable {
}
That being said, I would highly recommend not using mixed case identifiers. While it works, it creates a lot of complexity in having to worry about quoting everything. The convention I see most with Cassandra is to use all lower case use _
as a separator of words, i.e. my_table
. You can still use MyTable
as your class name to meet java conventions.
Unfortunately, this didn't work. The following exception is thrown: java.lang.IllegalArgumentException: given string ["MyTable"] is not a valid quoted or unquoted identifier
– MAhmed
Jan 18 at 15:17
ah, I didn't realize at the time that there was a separate option for this, glad you figured it out!
– Andy Tolbert
Jan 19 at 2:37
add a comment |
In Cassandra's CQL, identifiers like keyspace, table, and column names are case insensitive. If you desire to use mixed case you must quote your names, i.e.:
import org.springframework.data.cassandra.core.mapping.Table;
@Table(""MyTable"")
public class MyTable {
}
That being said, I would highly recommend not using mixed case identifiers. While it works, it creates a lot of complexity in having to worry about quoting everything. The convention I see most with Cassandra is to use all lower case use _
as a separator of words, i.e. my_table
. You can still use MyTable
as your class name to meet java conventions.
Unfortunately, this didn't work. The following exception is thrown: java.lang.IllegalArgumentException: given string ["MyTable"] is not a valid quoted or unquoted identifier
– MAhmed
Jan 18 at 15:17
ah, I didn't realize at the time that there was a separate option for this, glad you figured it out!
– Andy Tolbert
Jan 19 at 2:37
add a comment |
In Cassandra's CQL, identifiers like keyspace, table, and column names are case insensitive. If you desire to use mixed case you must quote your names, i.e.:
import org.springframework.data.cassandra.core.mapping.Table;
@Table(""MyTable"")
public class MyTable {
}
That being said, I would highly recommend not using mixed case identifiers. While it works, it creates a lot of complexity in having to worry about quoting everything. The convention I see most with Cassandra is to use all lower case use _
as a separator of words, i.e. my_table
. You can still use MyTable
as your class name to meet java conventions.
In Cassandra's CQL, identifiers like keyspace, table, and column names are case insensitive. If you desire to use mixed case you must quote your names, i.e.:
import org.springframework.data.cassandra.core.mapping.Table;
@Table(""MyTable"")
public class MyTable {
}
That being said, I would highly recommend not using mixed case identifiers. While it works, it creates a lot of complexity in having to worry about quoting everything. The convention I see most with Cassandra is to use all lower case use _
as a separator of words, i.e. my_table
. You can still use MyTable
as your class name to meet java conventions.
answered Jan 18 at 15:02
Andy TolbertAndy Tolbert
9,54012035
9,54012035
Unfortunately, this didn't work. The following exception is thrown: java.lang.IllegalArgumentException: given string ["MyTable"] is not a valid quoted or unquoted identifier
– MAhmed
Jan 18 at 15:17
ah, I didn't realize at the time that there was a separate option for this, glad you figured it out!
– Andy Tolbert
Jan 19 at 2:37
add a comment |
Unfortunately, this didn't work. The following exception is thrown: java.lang.IllegalArgumentException: given string ["MyTable"] is not a valid quoted or unquoted identifier
– MAhmed
Jan 18 at 15:17
ah, I didn't realize at the time that there was a separate option for this, glad you figured it out!
– Andy Tolbert
Jan 19 at 2:37
Unfortunately, this didn't work. The following exception is thrown: java.lang.IllegalArgumentException: given string ["MyTable"] is not a valid quoted or unquoted identifier
– MAhmed
Jan 18 at 15:17
Unfortunately, this didn't work. The following exception is thrown: java.lang.IllegalArgumentException: given string ["MyTable"] is not a valid quoted or unquoted identifier
– MAhmed
Jan 18 at 15:17
ah, I didn't realize at the time that there was a separate option for this, glad you figured it out!
– Andy Tolbert
Jan 19 at 2:37
ah, I didn't realize at the time that there was a separate option for this, glad you figured it out!
– Andy Tolbert
Jan 19 at 2:37
add a comment |
I was able to solve the problem by adding (forceQuote = true) to @Table annotation.
@Table(value = "MyTable", forceQuote = true)
public class MyTable {
}
add a comment |
I was able to solve the problem by adding (forceQuote = true) to @Table annotation.
@Table(value = "MyTable", forceQuote = true)
public class MyTable {
}
add a comment |
I was able to solve the problem by adding (forceQuote = true) to @Table annotation.
@Table(value = "MyTable", forceQuote = true)
public class MyTable {
}
I was able to solve the problem by adding (forceQuote = true) to @Table annotation.
@Table(value = "MyTable", forceQuote = true)
public class MyTable {
}
edited 2 days ago
answered Jan 18 at 17:24
MAhmedMAhmed
2317
2317
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%2f54255648%2fspring-data-cassandra-converts-the-keyspace-name-and-table-names-into-lowercase%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