我正在为公司制作数据库驱动的常见问题解答 我有一个带变量
的Faq.java类1.faqUid 2.faqQuestion 3.faqAnswer 4.companyUserRole
所以我通过dao从数据库中获取结果你们都知道。我已经列出了一个列表<>数据类型
private List<Faq> fetchFaqs;
fetchFaqs = faqService.fetchRnrFaq(rnrUser);
现在fetchFaqs是一个通用列表,其数据类型在faq.java中指定。
现在假设我从数据库中获取数据
骷髅:
faqUid | faqQuestion | faqAnswer | companyUserRole
数据:
1 |问题1 |问题2 |超级管理员
2 |问题1 |问题2 |集团管理员
3 |问题1 |问题2 |用户
因此,您可以看到我对所有三种类型的角色都有相同的问题和答案,即超级管理员,组管理员和用户。
当我正常取得时,我得到了
经常提出的问题
Q.1问题1
A.1答案1
Q.2问题2
A.2答案2
Q.3问题3
A.3答案3
我想要的是
常见问题(超级管理员)
Q.1问题1
A.1答案1
常见问题(小组管理员)
Q.1问题1
A.1答案1
常见问题(用户)
Q.1问题1
A.1答案1
我该如何实现这个?????????????。
PS。没有什么是硬编码的,一切都是数据库驱动的
faq.java类
private String faqQuestion;
private String faqAnswer;
private String faqUid;
private String userRoleName;
并且各自有吸气剂和设定者
答案 0 :(得分:0)
根据companyUserRole
字段(例如Map
)对结果进行分组,并处理每种类型的结果。
答案 1 :(得分:0)
我假设您的Faq类包含数据库中的所有字段,并且您可以修改查询。恕我直言,获得所需内容的最简单方法是使用ORDER BY companyUserRole
对查询进行排序。然后你可以这样处理(伪代码):
currentRole = "";
for(Faq faq: fetchFaqs) {
if ! currentRole.equals(faq.role) {
currentRole = faq.role
display_new_role_group_header()
display_faq(faq)
那样: