Java 我想在spring boot中动态地从db获取数据
我正在使用spring引导框架构建RESTAPI。我需要使用fields=creationDate,relatedParty[role,name]获取请求中请求的数据/列(从多个表中)。它必须是动态获取,就像请求中的任何字段值一样。我需要从数据库中动态获取这些特定数据。据我所知,我建议您根据需要使用一对多或多对多映射。比如,如果我有一个帖子模型和一个评论模型,并且我想从帖子模型中获取评论,那么我将使用一对多关系Java 我想在spring boot中动态地从db获取数据,java,spring-boot,spring-data-jpa,Java,Spring Boot,Spring Data Jpa,我正在使用spring引导框架构建RESTAPI。我需要使用fields=creationDate,relatedParty[role,name]获取请求中请求的数据/列(从多个表中)。它必须是动态获取,就像请求中的任何字段值一样。我需要从数据库中动态获取这些特定数据。据我所知,我建议您根据需要使用一对多或多对多映射。比如,如果我有一个帖子模型和一个评论模型,并且我想从帖子模型中获取评论,那么我将使用一对多关系 @Entity @Table(name = "posts") p
@Entity
@Table(name = "posts")
public class Post {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name = "title")
private String title;
@OneToMany(mappedBy = "post",
cascade = {CascadeType.ALL})
List<Comment> comments = new ArrayList<>();
}
Spring数据JPA中没有对此的特殊支持,因此您应该回到JPA,即您编写一个自定义方法并获得一个
EntityManager
注入来使用
您可以使用CriteriaAPI根据输入创建查询
此站点应该让您开始使用CriteriaAPI将您的域模型映射到REST API。对于不需要进一步业务逻辑的简单API非常有用。
@Entity
@Table(name = "comments")
public class Comment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
private String comment;
@ManyToOne(cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "posts_id", nullable = true)
private Post post;
}