Вызвано: java.lang.IllegalArgumentException: Неуправляемый тип: & Вызвано: org.hibernate.AnnotationException: Не указан идентификатор для сущности: - PullRequest
0 голосов
/ 05 марта 2019

Я создал два класса сущностей.

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

Если я аннотирую класс UserRoleAssociationEntity с помощью @entity iполучить следующую ошибку:

Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.dataGuru.BusDirV3.Entities.UserRoleAssociationEntity

В чем проблема, с которой я здесь сталкиваюсь, и решение этой проблемы.

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Вместо создания нового 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 ;
0 голосов
/ 05 марта 2019

В вашем классе должно быть уникальное поле, которое действует как идентификатор для этой сущности.(Поле с @Id аннотацией`)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...