枚举上的Hibernate AnnotationException未知实体
我想为每个用户所在的组织分配不同的角色。我从中得到了实体授权角色的想法 但是,当我尝试运行单元测试时,它们在加载应用程序上下文时都失败了,因为Hibernate找不到实体角色。GrantedRole已添加到my persistence.xml中。 我得到的错误是: org.hibernate.AnnotationException:@OneToOne或@ManyToOne打开 com.onior.modm.registration.domain.GrantedRole.role引用了 未知实体:com.onior.modm.registration.domain.GrantedRole$Role 当我将GrantedRole.Role添加到persistence.xml时,我还得到: javax.persistence.PersistenceException:[PersistenceUnit: 找不到modm persistence]类或包 原因:java.lang.ClassNotFoundException: com.onior.modm.registration.domain.GrantedRole.Role 我的GrantedRole代码忽略了setter。DomainEntity是我所有实体的超类枚举上的Hibernate AnnotationException未知实体,hibernate,jpa,enums,Hibernate,Jpa,Enums,我想为每个用户所在的组织分配不同的角色。我从中得到了实体授权角色的想法 但是,当我尝试运行单元测试时,它们在加载应用程序上下文时都失败了,因为Hibernate找不到实体角色。GrantedRole已添加到my persistence.xml中。 我得到的错误是: org.hibernate.AnnotationException:@OneToOne或@ManyToOne打开 com.onior.modm.registration.domain.GrantedRole.role引用了 未知实体:
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.validation.constraints.NotNull;
import org.springframework.security.core.GrantedAuthority;
@SuppressWarnings("serial")
@Entity
@Table(name = "role_assignments", uniqueConstraints = @UniqueConstraint(columnNames = {
"user", "organization"}))
public class GrantedRole extends DomainEntity implements GrantedAuthority {
private User user;
private Role role;
private Organization organization;
public enum Role {
USER, ORGADMIN, ADMIN
}
public GrantedRole() {
super();
}
public GrantedRole(User user, Role role, Organization organization) {
super();
this.user = user;
this.role = role;
this.organization = organization;
}
@ManyToOne
@NotNull
public User getUser() {
return user;
}
@ManyToOne
@NotNull
@Enumerated(EnumType.STRING)
public Role getRole() {
return role;
}
我该怎么解决这个问题?我更愿意保留en enum的角色,或者至少不要将其设为enum。啊,我想我知道出了什么问题。我将GrantedRole声明为一个manytone关系,但它期望Role是一个实体,而事实并非如此。我删除了
@manytone
部分,现在一切正常:)
事实证明,在发布新问题之前,我应该多花半个小时阅读博客帖子和其他问题