读书人

Hibernate自定义部类 集合-gt;字符串 存

发布时间: 2013-04-22 16:01:35 作者: rapoo

Hibernate自定义类型 集合--->字符串 存储
/** * 此处没有使用关联 是为了提高性能(后续会挨着查询资源和权限列表,因为有缓存,数据量也不是很大 所以性能不会差) * <p>User: Zhang Kaitao * <p>Date: 13-4-5 下午2:04 * <p>Version: 1.0 */@TypeDef( name = "SetToStringUserType", typeClass = CollectionToStringUserType.class, parameters = { @Parameter(name = "separator", value = ","), @Parameter(name = "collectionType", value = "java.util.HashSet"), @Parameter(name = "elementType", value = "java.lang.Long") })@Entity@Table(name = "sys_role_resource_permission")public class RoleResourcePermission extends BaseEntity<Long> { /** * 角色id */ @ManyToOne(optional = true, fetch = FetchType.EAGER) @Fetch(FetchMode.SELECT) private Role role; /** * 资源id */ @Column(name ="resource_id") private Long resourceId; /** * 权限id列表 * 数据库通过字符串存储 逗号分隔 */ @Column(name ="permission_ids") @Type(type = "SetToStringUserType") private Set<Long> permissionIds; public RoleResourcePermission() { }

?

@TypeDef(

? ? ? ? name = "SetToStringUserType",

? ? ? ? typeClass = CollectionToStringUserType.class,

? ? ? ? parameters = {

? ? ? ? ? ? ? ? ?@Parameter(name = "separator", value = ","),

? ? ? ? ? ? ? ? ?@Parameter(name = "collectionType", value = "java.util.HashSet"),

? ? ? ? ? ? ? ? ?@Parameter(name = "elementType", value = "java.lang.Long")

? ? ? ? }

)

定义类型并指定参数化的集合类型、元素类型和分隔符。

?

github代码

读书人网 >软件架构设计

热点推荐