package org.springside.examples.miniweb.entity.account; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.Transient; import org.apache.commons.lang.builder.ToStringBuilder; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.springside.examples.miniweb.entity.IdEntity; /** * 权限. * * 注释见{@link User}. * * @author calvin */ @Entity @Table(name = "ACCT_AUTHORITY") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class Authority extends IdEntity { /** * SpringSecurity中默认的角色/授权名前缀. */ public static final String AUTHORITY_PREFIX = "ROLE_"; private String name; public Authority() { } public Authority(Long id, String name) { this.id = id; this.name = name; } @Column(nullable = false, unique = true) public String getName() { return name; } public void setName(String name) { this.name = name; } @Transient public String getPrefixedName() { return AUTHORITY_PREFIX + name; } @Override public String toString() { return ToStringBuilder.reflectionToString(this); } }