【问题标题】:How To Create Method Extend from CrudRepository for Composite Key如何从 CrudRepository 为复合键创建方法扩展
【发布时间】:2016-08-22 17:15:12
【问题描述】:

我有 1 类 ContainerLoadList 与这样的复合键 ContainerLoadListPK

@Embeddable
public class ContainerLoadListPK implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 3526479259987259367L;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 13)
    @Column(name = "ContainerNo")
    private String containerNo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 6)
    @Column(name = "VesselCode")
    private String vesselCode;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 8)
    @Column(name = "Voyage")
    private String voyage;

    public ContainerLoadListPK() {
    }

    public ContainerLoadListPK(String containerNo, String vesselCode, String voyage) {
        this.containerNo = containerNo;
        this.vesselCode = vesselCode;
        this.voyage = voyage;
    }

    public String getContainerNo() {
        return containerNo;
    }

    public void setContainerNo(String containerNo) {
        this.containerNo = containerNo;
    }

    public String getVesselCode() {
        return vesselCode;
    }

    public void setVesselCode(String vesselCode) {
        this.vesselCode = vesselCode;
    }

    public String getVoyage() {
        return voyage;
    }

    public void setVoyage(String voyage) {
        this.voyage = voyage;
    }
}

我还有另一个像这样从 CrudRepository 扩展的接口

public interface ContainerLoadListRepository extends CrudRepository<ContainerLoadList, ContainerLoadListPK> {
    List<ContainerLoadList> findByBNo(@Param("bNo") String bNo);

    @Query(name = "ContainerLoadList.findByVesselCodeAndVoyage")
    List<ContainerLoadList> findByVesselCodeAndVoyage(@Param("vesselCode") String vesselCode,@Param("voyage") String voyage);
}

对于 findByVesselCodeAndVoyage,您是否有另一种不使用 @Query 的解决方案?

【问题讨论】:

    标签: spring spring-boot spring-data-jpa


    【解决方案1】:

    假设ContainerLoadList里面的内嵌键域叫做pk,你可以试试这个:

    List<ContainerLoadList> findByPkVesselCodeAndPkVoyage(String vesselCode, String voyage);
    

    更多信息,请查看Spring Data JPA Property Expressions documentation

    【讨论】:

      猜你喜欢
      • 2011-06-26
      • 2016-07-21
      • 2013-12-23
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多