【问题标题】:Spring Data JPA: persist a nested objectSpring Data JPA:持久化嵌套对象
【发布时间】:2015-02-18 16:05:23
【问题描述】:

我有一个 USER(id, role_id, first, last) 对象,其中包含一个 ROLE(id, role_name) 对象。数据库中预定义了ROLE,数据如下:0,用户; 1、管理员; 3 超级管理员...持久(保存)用户并根据角色名称将角色ID添加到用户的最佳方法是什么?创建用户时,我知道角色名称,但不知道角色 ID。我是否需要先查询角色 ID,然后将其添加到 USER 对象?我确信在 Spring Data JPA 中有更聪明的方法。请帮忙,谢谢。

【问题讨论】:

    标签: java spring hibernate jpa spring-data-jpa


    【解决方案1】:

    您确实配置了存储库,对吗?

    假设您有RoleRepository extends JpaRepository<Role, Long> 接口,您可以定义方法Role findByRoleName(String roleName) 并获取Role 对象,将其附加到新创建的User 对象并通过用户存储库保留该用户。
    当然,你必须在User 类中有有效的关系,比如说@OneToMany(cascade=ALL, mappedBy="user") private Set<Role> roles
    cascade 注释属性当然是可配置的。

    更好的是,如果您在应用程序启动时将所有角色加载到内存中,因为您已经预定义了它们,将它们存储到 Map 并在需要时从映射中获取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 2015-12-03
      相关资源
      最近更新 更多