gpt4 book ai didi

java - 在 Hibernate 中声明 POJO 的最佳实践

转载 作者:行者123 更新时间:2023-12-01 05:06:26 25 4
gpt4 key购买 nike

在查看 Hibernate 映射示例时,我发现,

当一个类包含 Collection 时,它在某处声明为,

class Role{
String roleName;
Set<Permission> permissionName;
}

class Permission{
String permissionName;
}

或者

class Role{
String roleName;
}

class Permission{
String permissionName;
}

class RolePermission{
String roleName;
String permissionName;
}

hbm.xml 文件的两种样式都不同。

两者通用的数据库表

Role
-----
role_id(PK) role_name

Permission
-----------
permission_id(PK) permission_name

Role_Permission
-----------------
role_permission_id role_id(FK) permission_id(FK)

应该使用哪种最佳方式,以及在生成的查询中考虑 hibernate 的区别。

最佳答案

在这种情况下选择第一个。拥有一个具有一组权限的角色是更自然的方式。因为这就是您的业务问题:您希望每个角色都具有多个权限。如果应用程序背后没有关系数据库,您甚至不会考虑采用第二种解决方案,它是第一类结构的分解。

通常这就是为什么你使用 ORM(这里是 Hibernate)的原因,这样你就可以拥有更方便的类结构,而不必担心如何将其分解为关系数据库。所以一定要选择第一个。

(你会失去什么:无法轻松地为 rolePermissions 编写查询(但这不是问题,因为它只是一个“帮助器”类,它不会模拟任何现实世界的事物))

关于java - 在 Hibernate 中声明 POJO 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12596189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com