2016-11-17 127 views
0

无法为我给此问题的查询创建正确的itnerface。Spring Boot findByIdIn内部列表

我有这样的实体:

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; 

而且渣滓Repositoy:

public interface TwoRepository extends CrudRepository<TwoEntity, Long> { 

TwoEntityfindById(Long id); 

TwoEntityfindByGroupName(String groupName); 

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

我的目标是让所有TwoEntities其中OneEntitie是TwoEntity列表中选择一个元素。 我使用Spring引导和Hibernate来实现这一点。我不能从我的数据库中删除OneEntity对象,因为TwoEntity在列表中有OneEntity作为ForeignKey。

有没有办法让它与接口中给定的工具一起工作? 一个可用的关键字列表可以在这里找到:spring docs for crud

/E

我想我有一个错误的架构。目前,我在这些实体之间有一个单向关系。我想我必须使这些实体双向并删除他们与oneList.setList(null) manuelle。

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

回答

1

您可以使用此:

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

+0

噢,谢谢。在Hibernate中测试了这个语法,它像一个魅力。非常感谢你。 – Offset