java - Spring Boot findByIdIn 内部列表

标签 java spring hibernate spring-data-jpa

无法为这个给定问题的查询创建正确的 itnerface。

我有这个实体:

public class TwoEntity extends BaseEntity implements Serializable {

private static final long serialVersionUID = 1L;

/*
 * ATTRIBUTE
 */
private String groupName;

@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<OneEntity> oneList;

还有 Crud 存储库:

public interface TwoRepository extends CrudRepository<TwoEntity, Long> {

TwoEntityfindById(Long id);

TwoEntityfindByGroupName(String groupName);

List<TwoEntity> findBy????(OneEntity oe);

我的目标是获取所有 TwoEntities,其中 OneEntitie 是 TwoEntity 列表中的元素。 我正在使用 Spring boot 和 Hibernate 来完成此任务。我无法从数据库中删除 OneEntity 对象,因为 TwoEntity 在列表中将 OneEntity 作为外键。

是否有办法让它与界面中给定的工具一起使用? 可用关键字列表可在此处找到:spring docs for crud

/E

我想我的架构是错误的。目前我在这些实体之间有单向关系。我想我必须使这些实体双向并使用 oneList.setList(null) 手动删除它们。

但我不是 100% 确定。打开以供输入。

最佳答案

你可以使用这个:

List<TwoEntity> findByOneList_Id(Long oneEntityId)

但是您需要从 JpaRepository 扩展

public interface TwoRepository extends JpaRepository<TwoEntity, Long> {

该方法将被翻译为

twoEntity.oneList.id

这里是官方文档

http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-property-expressions

关于java - Spring Boot findByIdIn 内部列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40652278/

相关文章:

java - 高效的条件查询仅选择查询的第一个和最后一个结果?

hibernate - 为什么同时使用 C3PO 和 JNDI 会产生问题?

java - 多个模块,每个模块在 gradle 中使用 spring 提供休息服务

Spring Data JPA 查询 - 使用 in 子句进行计数

java - Spring:如何在RESTful服务中为@RequestBody添加XSS保护?

angularjs - AngularJS 的 Spring 安全性 - 注销时出现 404

java - 如何在 Hibernate 中注释具有相同类型实体集的实体

java - 解析从 Salesforce 获取的数据时出现加密错误

java - 将 URL 中的特定 java 类作为 JSP 或独立类运行

java - XStream 的安全框架未初始化,XStream 可能存在漏洞