Modelling nested entities2019 Community Moderator ElectionHibernate update table B after table A is updatedwhy MyEclipse shows join_table not found error at compilationHibernate unable to delete parent/child self-join entityHow can I set foriegn key column in Spring JPABidirectional mapping of entities in Hibernate and spring mvcMappingJackson2HttpMessageConverter Can not find a (Map) Key deserializer for typeHibernate : Why FetchType.LAZY-annotated collection property eagerly loading?JPA Query for collection map join tablecom.fasterxml.jackson.databind.JsonMappingException: Multiple back-reference properties with name 'defaultReference'Hibernate join columns not by a primary key reference
"One can do his homework in the library"
Why is there a voltage between the mains ground and my radiator?
Examples of a statistic that is not independent of sample's distribution?
MTG: Can I kill an opponent in response to lethal activated abilities, and not take the damage?
show this identity with trigometric
How to pass a string to a command that expects a file?
How does airport security verify that you can carry a battery bank over 100 Wh?
Built-In Shelves/Bookcases - IKEA vs Built
A question on the ultrafilter number
How to create a hard link to an inode (ext4)?
Is having access to past exams cheating and, if yes, could it be proven just by a good grade?
Why does Deadpool say "You're welcome, Canada," after shooting Ryan Reynolds in the end credits?
How do anti-virus programs start at Windows boot?
Why don't MCU characters ever seem to have language issues?
String reversal in Python
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
Accountant/ lawyer will not return my call
What wound would be of little consequence to a biped but terrible for a quadruped?
What Happens when Passenger Refuses to Fly Boeing 737 Max?
What is the likely impact of grounding an entire aircraft series?
2×2×2 rubik's cube corner is twisted!
Could a cubesat propel itself to Mars?
How did Alan Turing break the enigma code using the hint given by the lady in the bar?
Do Bugbears' arms literally get longer when it's their turn?
Modelling nested entities
2019 Community Moderator ElectionHibernate update table B after table A is updatedwhy MyEclipse shows join_table not found error at compilationHibernate unable to delete parent/child self-join entityHow can I set foriegn key column in Spring JPABidirectional mapping of entities in Hibernate and spring mvcMappingJackson2HttpMessageConverter Can not find a (Map) Key deserializer for typeHibernate : Why FetchType.LAZY-annotated collection property eagerly loading?JPA Query for collection map join tablecom.fasterxml.jackson.databind.JsonMappingException: Multiple back-reference properties with name 'defaultReference'Hibernate join columns not by a primary key reference
Being new to hibernate/jpa i am facing difficulty on how to model the nested entities correctly, my requirment,
user -> have many roles -> each role have many permissions
Each permission for a role needs to be persisted as separate row in table.
And, need to have separate tables for users and theirs roles; again each role of a user need to be persisted as a separate row in table.
I wrote the below; but this is not allowing me to create new users with already defined roles...
@Entity
@Table(name = "users")
public class User implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID",strategy = "org.hibernate.id.UUIDGenerator")
public UUID id;
@Column(name = "username")
public String name;
@Column(name = "password")
public String password;
@OneToMany(cascade = CascadeType.ALL, mappedBy="user")
@LazyCollection(LazyCollectionOption.FALSE)
public List<UserRole> roles;
@Entity
@Table(name = "user_roles")
public class UserRole implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID",strategy = "org.hibernate.id.UUIDGenerator" )
public UUID id;
@ManyToOne
@JoinColumn(name="username", nullable=false, referencedColumnName = "username")
public User user;
@Column(name = "role_name")
public String roleName;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH)
@JoinColumn(name = "role_name", referencedColumnName = "role_name")
public List<RolePermission> permissions;
@Entity
@Table(name = "roles_permissions")
public class RolePermission implements Serializable
@Id
@Column(name = "role_name")
public String roleName;
@Id
@Column(name = "permission")
public String permission;
Get the below error,
2019-03-06 21:25:22.643 ERROR 48896 --- [nio-8090-exec-3]
o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: duplicate key value
violates unique constraint "uk_40fvvy071dnqy9tywk6ei7f5r" Detail:
Key (role_name)=(owner) already exists.
hibernate spring-data-jpa
add a comment |
Being new to hibernate/jpa i am facing difficulty on how to model the nested entities correctly, my requirment,
user -> have many roles -> each role have many permissions
Each permission for a role needs to be persisted as separate row in table.
And, need to have separate tables for users and theirs roles; again each role of a user need to be persisted as a separate row in table.
I wrote the below; but this is not allowing me to create new users with already defined roles...
@Entity
@Table(name = "users")
public class User implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID",strategy = "org.hibernate.id.UUIDGenerator")
public UUID id;
@Column(name = "username")
public String name;
@Column(name = "password")
public String password;
@OneToMany(cascade = CascadeType.ALL, mappedBy="user")
@LazyCollection(LazyCollectionOption.FALSE)
public List<UserRole> roles;
@Entity
@Table(name = "user_roles")
public class UserRole implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID",strategy = "org.hibernate.id.UUIDGenerator" )
public UUID id;
@ManyToOne
@JoinColumn(name="username", nullable=false, referencedColumnName = "username")
public User user;
@Column(name = "role_name")
public String roleName;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH)
@JoinColumn(name = "role_name", referencedColumnName = "role_name")
public List<RolePermission> permissions;
@Entity
@Table(name = "roles_permissions")
public class RolePermission implements Serializable
@Id
@Column(name = "role_name")
public String roleName;
@Id
@Column(name = "permission")
public String permission;
Get the below error,
2019-03-06 21:25:22.643 ERROR 48896 --- [nio-8090-exec-3]
o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: duplicate key value
violates unique constraint "uk_40fvvy071dnqy9tywk6ei7f5r" Detail:
Key (role_name)=(owner) already exists.
hibernate spring-data-jpa
add a comment |
Being new to hibernate/jpa i am facing difficulty on how to model the nested entities correctly, my requirment,
user -> have many roles -> each role have many permissions
Each permission for a role needs to be persisted as separate row in table.
And, need to have separate tables for users and theirs roles; again each role of a user need to be persisted as a separate row in table.
I wrote the below; but this is not allowing me to create new users with already defined roles...
@Entity
@Table(name = "users")
public class User implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID",strategy = "org.hibernate.id.UUIDGenerator")
public UUID id;
@Column(name = "username")
public String name;
@Column(name = "password")
public String password;
@OneToMany(cascade = CascadeType.ALL, mappedBy="user")
@LazyCollection(LazyCollectionOption.FALSE)
public List<UserRole> roles;
@Entity
@Table(name = "user_roles")
public class UserRole implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID",strategy = "org.hibernate.id.UUIDGenerator" )
public UUID id;
@ManyToOne
@JoinColumn(name="username", nullable=false, referencedColumnName = "username")
public User user;
@Column(name = "role_name")
public String roleName;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH)
@JoinColumn(name = "role_name", referencedColumnName = "role_name")
public List<RolePermission> permissions;
@Entity
@Table(name = "roles_permissions")
public class RolePermission implements Serializable
@Id
@Column(name = "role_name")
public String roleName;
@Id
@Column(name = "permission")
public String permission;
Get the below error,
2019-03-06 21:25:22.643 ERROR 48896 --- [nio-8090-exec-3]
o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: duplicate key value
violates unique constraint "uk_40fvvy071dnqy9tywk6ei7f5r" Detail:
Key (role_name)=(owner) already exists.
hibernate spring-data-jpa
Being new to hibernate/jpa i am facing difficulty on how to model the nested entities correctly, my requirment,
user -> have many roles -> each role have many permissions
Each permission for a role needs to be persisted as separate row in table.
And, need to have separate tables for users and theirs roles; again each role of a user need to be persisted as a separate row in table.
I wrote the below; but this is not allowing me to create new users with already defined roles...
@Entity
@Table(name = "users")
public class User implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID",strategy = "org.hibernate.id.UUIDGenerator")
public UUID id;
@Column(name = "username")
public String name;
@Column(name = "password")
public String password;
@OneToMany(cascade = CascadeType.ALL, mappedBy="user")
@LazyCollection(LazyCollectionOption.FALSE)
public List<UserRole> roles;
@Entity
@Table(name = "user_roles")
public class UserRole implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID",strategy = "org.hibernate.id.UUIDGenerator" )
public UUID id;
@ManyToOne
@JoinColumn(name="username", nullable=false, referencedColumnName = "username")
public User user;
@Column(name = "role_name")
public String roleName;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH)
@JoinColumn(name = "role_name", referencedColumnName = "role_name")
public List<RolePermission> permissions;
@Entity
@Table(name = "roles_permissions")
public class RolePermission implements Serializable
@Id
@Column(name = "role_name")
public String roleName;
@Id
@Column(name = "permission")
public String permission;
Get the below error,
2019-03-06 21:25:22.643 ERROR 48896 --- [nio-8090-exec-3]
o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: duplicate key value
violates unique constraint "uk_40fvvy071dnqy9tywk6ei7f5r" Detail:
Key (role_name)=(owner) already exists.
hibernate spring-data-jpa
hibernate spring-data-jpa
asked Mar 6 at 16:22
kartskarts
3829
3829
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Got it working after correctly modelling UserRole, below is my new entity class for UserRole,
@Entity
@Table(name = "user_roles")
public class UserRole implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
public UUID id;
@ManyToOne
@JoinColumn(name="username", nullable=false, referencedColumnName = "username")
public User user;
@Column(name = "role_name")
public String roleName;
@ManyToMany
@JoinTable(name = "roles_permissions",joinColumns = @JoinColumn(name = "role_name"))
public List<RolePermission> permissions;
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%2f55027762%2fmodelling-nested-entities%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Got it working after correctly modelling UserRole, below is my new entity class for UserRole,
@Entity
@Table(name = "user_roles")
public class UserRole implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
public UUID id;
@ManyToOne
@JoinColumn(name="username", nullable=false, referencedColumnName = "username")
public User user;
@Column(name = "role_name")
public String roleName;
@ManyToMany
@JoinTable(name = "roles_permissions",joinColumns = @JoinColumn(name = "role_name"))
public List<RolePermission> permissions;
add a comment |
Got it working after correctly modelling UserRole, below is my new entity class for UserRole,
@Entity
@Table(name = "user_roles")
public class UserRole implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
public UUID id;
@ManyToOne
@JoinColumn(name="username", nullable=false, referencedColumnName = "username")
public User user;
@Column(name = "role_name")
public String roleName;
@ManyToMany
@JoinTable(name = "roles_permissions",joinColumns = @JoinColumn(name = "role_name"))
public List<RolePermission> permissions;
add a comment |
Got it working after correctly modelling UserRole, below is my new entity class for UserRole,
@Entity
@Table(name = "user_roles")
public class UserRole implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
public UUID id;
@ManyToOne
@JoinColumn(name="username", nullable=false, referencedColumnName = "username")
public User user;
@Column(name = "role_name")
public String roleName;
@ManyToMany
@JoinTable(name = "roles_permissions",joinColumns = @JoinColumn(name = "role_name"))
public List<RolePermission> permissions;
Got it working after correctly modelling UserRole, below is my new entity class for UserRole,
@Entity
@Table(name = "user_roles")
public class UserRole implements Serializable
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
public UUID id;
@ManyToOne
@JoinColumn(name="username", nullable=false, referencedColumnName = "username")
public User user;
@Column(name = "role_name")
public String roleName;
@ManyToMany
@JoinTable(name = "roles_permissions",joinColumns = @JoinColumn(name = "role_name"))
public List<RolePermission> permissions;
answered 2 days ago
kartskarts
3829
3829
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%2f55027762%2fmodelling-nested-entities%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