[英]org.hibernate.AnnotationException: No identifier specified for entity
[英]Caused by: java.lang.IllegalArgumentException: Not a managed type: & Caused by: org.hibernate.AnnotationException: No identifier specified for entity:
我創建了兩個實體類。
RoleEntity:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table (name ="roles")
public class RoleEntity {
@Id
@Column(name = "role_id")
private Integer roleId;
@Column(name = "role_name")
private String roleName;
//Getters
//Setters
UserEntity:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="user_master")
public class UserEntity {
@Id
private Integer id;
@Column(name = "user_name")
private String username;
@Column(name = "user_password")
private String password;
//getters
//setters
現在,我有一個簡單的pojo,它將從這兩個實體中獲取數據,稍后將在服務中使用。
import java.util.Set;
public class UserRoleAssociationEntity {
UserEntity user;
Set<RoleEntity> roles;
//getters
//setters
現在,在運行項目時出現錯誤。
Caused by: java.lang.IllegalArgumentException: Not a managed type: class com.dataGuru.BusDirV3.Entities.UserRoleAssociationEntity
如果我使用@entity注釋UserRoleAssociationEntity類,則會出現以下錯誤:
Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.dataGuru.BusDirV3.Entities.UserRoleAssociationEntity
我在這里面臨的問題是什么?
您需要在類中具有一個唯一字段,該字段充當此實體的標識符。 (帶有@Id
注釋的字段)
無需創建新的POJO,而是在UserEntity類中添加多對多關系。
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="user_master")
public class UserEntity
{
@Id
private Integer id;
@Column(name = "user_name")
private String username;
@Column(name = "user_password")
private String password;
@Column(name = "user_password")
private String password;
@ManyToMany(cascade=CascadeType.MERGE, fetch = FetchType.EAGER) //
@JoinTable(
name="USERROLE_ASSOCIATION",
joinColumns={@JoinColumn(name="USER_ID", referencedColumnName="ID")},
inverseJoinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="ID")})
private Set<RoleEntity> UserRoleAssociationEntity ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.