问题描述
我正在使用接口投影
public interface Dashboard
{
public int getProjectID();
// Review table
List<ReviewRs> getReviews();
// StakeHolder table
List<SteakHolderRs> getstakeHolders();
interface ReviewRs
{
int getReviewId();
String getReviewsType();
}
interface SteakHolderRs
{
int getId();
String getProjectResource();
}
}
上面的接口返回下面的JSON结构
{
"dashboards": [
{
"projectID": 211281,"reviews": [
{
"reviewsType": "Assessment Review","reviewId": 396
},{
"reviewsType": "HLSD Review","reviewId": 423
}
],"stakeHolders": [
{
"id": 468,"projectResource": "Joseph"
},{
"id": 644,"projectResource": "Renji"
}
]
}
]
}
我希望JSON看起来像这样
{
"dashboards": [
{
"projectID": 211281,"reviews":
{
"reviewsType": "Assessment Review","projectResource": "Renji"
}
]
},{
"projectID": 211281,"reviews":
{
"reviewsType": "HLSD Review","reviewId": 423
},"projectResource": "Renji"
}
]
}
]
}
评论对象不再分组在一起,而是根据reviewsType字段分开
回购界面
@Repository
public interface ProjectRepo extends JpaRepository<Project,Integer>
{
public List<Dashboard> findAllProjectedBy();
}
项目课程
@Entity
@Table(name = "project")
public class Project
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ProjectID")
private int projectID;
@OnetoMany(mappedBy = "h_project",fetch = FetchType.LAZY,cascade = CascadeType.ALL,orphanRemoval = true)
private List<Review> reviews;
@OnetoMany(mappedBy = "l_project",orphanRemoval = true)
private List<StakeHolder> stakeHolders;
//getters and setters removed for brevity
}
评论类(由于外观相同,省略StakeHolder类)
@Entity
@Table(name = "review")
public class Review
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "reviewID")
private int reviewId;
@Column(name = "ReviewsType")
private String reviewsType;
@ManyToOne(fetch = FetchType.LAZY,cascade = CascadeType.PERSIST)
@JoinColumn(name = "projectId",insertable=false,updatable=false)
private Project h_project;
//getters and setters removed for brevity
}
如何使用接口投影返回想要的JSON结构?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)