How to use the discriminator of single table inheritance in a unicity constraint?Single Table Inheritance in DjangoRails Single Table InheritanceHibernate, single table inheritance and using field from superclass as discriminator columnSingle Table Inheritance or Class Table Inheritance?Single Table Inheritance QueryCan I remove the discriminator column in a Hibernate single table inheritance?Can a single table inheritance entity extend a class table inheritance entity?JPA Query for collection map join tablePostgreSQL table inheritance and constraintsOneToMany Relationship with 3 entity class using JPA and spring boot
Can you feel passing through the sound barrier in an F-16?
Why did this happen to Thanos's ships at the end of "Avengers: Endgame"?
Does the benefit of the Flames of Phlegethos feat that allows rerolls of fire damage affect its final benefit?
Why doesn't the Falcon-9 first stage use three legs to land?
(Why) May a Beit Din refuse to bury a body in order to coerce a man into giving a divorce?
Were there 486SX revisions without an FPU on the die?
Can I switch to third-person while not in 'town' in Destiny 2?
What is the evidence on the danger of feeding whole blueberries and grapes to infants and toddlers?
Have only girls been born for a long time in this village?
Why we don't have vaccination against all diseases which are caused by microbes?
When translating the law, who ensures that the wording does not change the meaning of the law?
Church Booleans
Most practical knots for hitching a line to an object while keeping the bitter end as tight as possible, without sag?
How does turbine efficiency compare with internal combustion engines if all the turbine power is converted to mechanical energy?
Natural Pattern
Was this pillow joke on Friends intentional or a mistake?
How to avoid using System.String with Rfc2898DeriveBytes in C#
IndexOptimize - Configuration
What is the hex versus octal timeline?
Can you be convicted for being a murderer twice?
How to "know" if I have a passion?
Do ability scores have any effect on casting Wish spell
Why is my Earth simulation slower than the reality?
Was Switzerland really impossible to invade during WW2?
How to use the discriminator of single table inheritance in a unicity constraint?
Single Table Inheritance in DjangoRails Single Table InheritanceHibernate, single table inheritance and using field from superclass as discriminator columnSingle Table Inheritance or Class Table Inheritance?Single Table Inheritance QueryCan I remove the discriminator column in a Hibernate single table inheritance?Can a single table inheritance entity extend a class table inheritance entity?JPA Query for collection map join tablePostgreSQL table inheritance and constraintsOneToMany Relationship with 3 entity class using JPA and spring boot
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I'm setting up the account activation and password recovery on my application. In both case an email is sent with a link containing a token.
I need to make sure previous tokens become invalid when a new one is sent. In other words, a new link sent by email make the previous link obsolete.
I'm using the same table for all types of tokens. The unicity constraint should be on the duo email-tokenType.
So I tried to use the SINGLE_TABLE inheritance strategy like this :
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TOKEN_TYPE")
public abstract class UserToken
@EmbeddedId
private UserTokenIdentity userTokenIdentity;
private String token;
@Embeddable
public class UserTokenIdentity
private String email;
private String tokenType;
@Entity
@DiscriminatorValue("A")
public class ActivationToken extends UserToken
@Entity
@DiscriminatorValue("P")
public class ResetPasswordToken extends UserToken
The problem is i can't do that because of the following error :
Caused by: org.hibernate.DuplicateMappingException: Table [user_token] contains physical column name [token_type] referred to by multiple physical column names: [tokenType], [TOKEN_TYPE]
That's because i used the field in primary key AND as discriminator for the inheritance. I don't know why but it seems to not be allowed.
Can you give me your opinion on how should I do this ?
I'm using liquibase to create manually the database.
Thank you
spring-boot spring-data-jpa single-table-inheritance liquibase-hibernate
add a comment |
I'm setting up the account activation and password recovery on my application. In both case an email is sent with a link containing a token.
I need to make sure previous tokens become invalid when a new one is sent. In other words, a new link sent by email make the previous link obsolete.
I'm using the same table for all types of tokens. The unicity constraint should be on the duo email-tokenType.
So I tried to use the SINGLE_TABLE inheritance strategy like this :
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TOKEN_TYPE")
public abstract class UserToken
@EmbeddedId
private UserTokenIdentity userTokenIdentity;
private String token;
@Embeddable
public class UserTokenIdentity
private String email;
private String tokenType;
@Entity
@DiscriminatorValue("A")
public class ActivationToken extends UserToken
@Entity
@DiscriminatorValue("P")
public class ResetPasswordToken extends UserToken
The problem is i can't do that because of the following error :
Caused by: org.hibernate.DuplicateMappingException: Table [user_token] contains physical column name [token_type] referred to by multiple physical column names: [tokenType], [TOKEN_TYPE]
That's because i used the field in primary key AND as discriminator for the inheritance. I don't know why but it seems to not be allowed.
Can you give me your opinion on how should I do this ?
I'm using liquibase to create manually the database.
Thank you
spring-boot spring-data-jpa single-table-inheritance liquibase-hibernate
add a comment |
I'm setting up the account activation and password recovery on my application. In both case an email is sent with a link containing a token.
I need to make sure previous tokens become invalid when a new one is sent. In other words, a new link sent by email make the previous link obsolete.
I'm using the same table for all types of tokens. The unicity constraint should be on the duo email-tokenType.
So I tried to use the SINGLE_TABLE inheritance strategy like this :
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TOKEN_TYPE")
public abstract class UserToken
@EmbeddedId
private UserTokenIdentity userTokenIdentity;
private String token;
@Embeddable
public class UserTokenIdentity
private String email;
private String tokenType;
@Entity
@DiscriminatorValue("A")
public class ActivationToken extends UserToken
@Entity
@DiscriminatorValue("P")
public class ResetPasswordToken extends UserToken
The problem is i can't do that because of the following error :
Caused by: org.hibernate.DuplicateMappingException: Table [user_token] contains physical column name [token_type] referred to by multiple physical column names: [tokenType], [TOKEN_TYPE]
That's because i used the field in primary key AND as discriminator for the inheritance. I don't know why but it seems to not be allowed.
Can you give me your opinion on how should I do this ?
I'm using liquibase to create manually the database.
Thank you
spring-boot spring-data-jpa single-table-inheritance liquibase-hibernate
I'm setting up the account activation and password recovery on my application. In both case an email is sent with a link containing a token.
I need to make sure previous tokens become invalid when a new one is sent. In other words, a new link sent by email make the previous link obsolete.
I'm using the same table for all types of tokens. The unicity constraint should be on the duo email-tokenType.
So I tried to use the SINGLE_TABLE inheritance strategy like this :
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TOKEN_TYPE")
public abstract class UserToken
@EmbeddedId
private UserTokenIdentity userTokenIdentity;
private String token;
@Embeddable
public class UserTokenIdentity
private String email;
private String tokenType;
@Entity
@DiscriminatorValue("A")
public class ActivationToken extends UserToken
@Entity
@DiscriminatorValue("P")
public class ResetPasswordToken extends UserToken
The problem is i can't do that because of the following error :
Caused by: org.hibernate.DuplicateMappingException: Table [user_token] contains physical column name [token_type] referred to by multiple physical column names: [tokenType], [TOKEN_TYPE]
That's because i used the field in primary key AND as discriminator for the inheritance. I don't know why but it seems to not be allowed.
Can you give me your opinion on how should I do this ?
I'm using liquibase to create manually the database.
Thank you
spring-boot spring-data-jpa single-table-inheritance liquibase-hibernate
spring-boot spring-data-jpa single-table-inheritance liquibase-hibernate
edited Mar 27 at 16:54
flodor2
asked Mar 27 at 15:48
flodor2flodor2
227 bronze badges
227 bronze badges
add a comment |
add a comment |
0
active
oldest
votes
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%2f55381355%2fhow-to-use-the-discriminator-of-single-table-inheritance-in-a-unicity-constraint%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.
Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.
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%2f55381355%2fhow-to-use-the-discriminator-of-single-table-inheritance-in-a-unicity-constraint%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