Han*_*tsy 6 postgresql spring-boot spring-data-jdbc spring-data-r2dbc r2dbc
我尝试在 RDBMS 中创建用户/角色关系,并希望使用 R2dbc(Spring Data R2dbc) 与后端数据库握手。
假设有三个表,users、roles 和user_roles。
@Table("users")
class User {
@Id
private String username;
private String password;
private String email;
@Builder.Default
private boolean active = true;
@Builder.Default
private List<String> roles = new ArrayList<>();
@Column("created_at")
private LocalDateTime createdDate;
}
Run Code Online (Sandbox Code Playgroud)
与 JPA 不同,R2dbc 重用 spring-data-relational-common(在 Spring Data Jdbc 中也使用)来注释表,但没有解决关系的工具,例如roles此处。
Spring Data R2DBC 目前不支持关系。
因此,您要做的就是拥有一个User2Role具有两个属性的单独实体:String username以及String rolename引用被引用实体的 id。
由于您还标记了 Spring Data JDBC 问题:Spring Data JDBC 确实支持 1:1 和 1:M 引用,但不支持 M:1 或 M:N 关系。有关这方面的一些背景信息,请参阅https://spring.io/blog/2018/09/24/spring-data-jdbc-references-and-aggregates 。
Spring Data R2DBC 最终可能会转向相同的模型。
| 归档时间: |
|
| 查看次数: |
1106 次 |
| 最近记录: |