我在我的项目中使用 Spring Boot (1.3.3.RELEASE) 和 Hibernate JPA。我的实体如下所示:
@Data
@NoArgsConstructor
@Entity
@Table(name = "rule")
public class RuleVO {
@Id
@GeneratedValue
private Long id;
@Column(name = "name", length = 128, nullable = false, unique = true)
private String name;
@Column(name = "tag", length = 256)
private String tag;
@OneToMany(mappedBy = "rule", cascade = CascadeType.ALL, orphanRemoval = true)
private List<RuleOutputArticleVO> outputArticles;
@OneToMany(mappedBy = "rule", cascade = CascadeType.ALL, orphanRemoval = true)
private List<RuleInputArticleVO> inputArticles;
}
我的存储库如下所示:
@Repository
public interface RuleRepository extends JpaRepository<RuleVO, Long> {
}
在某些情况下,我只需要获取实体 RuleVO 的 id 和 name 属性。我怎样才能做到这一点?我发现一个通知应该可以使用 Criteria API 和 Projections 但如何?提前谢谢了。沃杰科技
原文由 Vojtech 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新:
正如已经向我指出的那样,我很懒惰,这可以很好地完成,因此我在网上查看了一个合适的答案后更新了我的答案。
这是一个如何 仅 获取 id 和名称 的 示例:
希望此更新对您有所帮助
老答案:
仅检索特定属性名称/id 是不可能的,因为这不是 spring 的设计方式,也不是任何 SQL 数据库,因为您总是选择作为实体的行。
您可以做的是查询实体中的变量,例如:
您可以根据自己的需要修改这些。您可以通过自动装配的存储库直接调用这些方法
有关更多选项和示例,请参阅 http://docs.spring.io/spring-data/jpa/docs/current/reference/html/ 第 5.3 节