Java 如何在Spring数据JPA中编写下面的SQL查询?
这应该行得通Java 如何在Spring数据JPA中编写下面的SQL查询?,java,spring-boot,spring-data-jpa,Java,Spring Boot,Spring Data Jpa,这应该行得通 @Entity @Table(name = "vnfconfigdetails", schema = "testreports") public class VnfConfigDetailsDB { private static final long serialVersionUID = 1L; @Id @GeneratedValue private int id; @Column(name = "vnfid") private
@Entity
@Table(name = "vnfconfigdetails", schema = "testreports")
public class VnfConfigDetailsDB {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private int id;
@Column(name = "vnfid")
private String vnfid;
@Column(name = "vnfversion")
private String vnfversion;
@Column(name = "vnfname")
private String vnfname;
@Column(name = "configinfo")
@Lob
private String configinfo;
@Column(name = "creationdate")
private Date creationdate;
@Column(name = "lastupdated")
private Date lastupdated;
@Column(name = "status")
private String status;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getVnfid() {
return vnfid;
}
public void setVnfid(String vnfid) {
this.vnfid = vnfid;
}
public String getVnfversion() {
return vnfversion;
}
public void setVnfversion(String vnfversion) {
this.vnfversion = vnfversion;
}
public String getVnfname() {
return vnfname;
}
public void setVnfname(String vnfname) {
this.vnfname = vnfname;
}
public String getConfiginfo() {
return configinfo;
}
public void setConfiginfo(String configinfo) {
this.configinfo = configinfo;
}
public Date getCreationdate() {
return creationdate;
}
public void setCreationdate(Date creationdate) {
this.creationdate = creationdate;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Date getLastupdated() {
return lastupdated;
}
public void setLastupdated(Date lastupdated) {
this.lastupdated = lastupdated;
}
}
列出FindByVnfindCreationDateBetween(字符串vnfid、日期开始日期、日期结束日期)
您不需要
@Query
。当您说介于之间时,sping数据将正确地表达查询。在您的例子中,您使用本机查询。这不是JPQL,所以您必须做一些更改
List<VnfConfigDetailsDB> findByVnfidAndCreationdateBetween(String vnfid, Date startDate, Date endDate)
@Query(value=“SELECT*FROM vnfconfig详细信息,其中(creationdate>=?2和creationdate=):startDate和v.creationdate删除@Param
@Query(value= " SELECT v FROM VnfConfigDetailsDB v where (v.creationdate >= :startDate AND v.creationdate <= :endDate ) AND v.vnfid =:vnfid")
List<VnfConfigDetailsDB> findByVnfidAndCreationdate(@Param("vnfid") String vnfid,@Param("startDate") Date startDate, @Param("endDate")Date endDate);
谢谢,工作正常。我还提出了其他问题,也是这样的
List<VnfConfigDetailsDB> findByVnfidAndCreationdateBetween(String vnfid, Date startDate, Date endDate)
@Query(value= " SELECT * FROM vnfconfigdetails where (creationdate >= ?2 AND creationdate <= ?3 ) AND vnfid =?1", nativeQuery = true)
List<VnfConfigDetailsDB> findByVnfidAndCreationdate(String vnfid,Date startDate, Date endDate);
@Query(value= " SELECT v FROM VnfConfigDetailsDB v where (v.creationdate >= :startDate AND v.creationdate <= :endDate ) AND v.vnfid =:vnfid")
List<VnfConfigDetailsDB> findByVnfidAndCreationdate(@Param("vnfid") String vnfid,@Param("startDate") Date startDate, @Param("endDate")Date endDate);
@Query(value = "SELECT * FROM vnfconfigdetails where (creationdate >= ?2 AND creationdate <= ?3 ) AND vnfid =?1", nativeQuery = true)
List<VnfConfigDetailsDB> findByVnfidAndCreationdateBetween(String vnfid, Date startDate, Date endDate);
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "creationdate", columnDefinition = "DATETIME")
private Date creationdate;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "lastupdated", columnDefinition = "DATETIME")
private Date lastupdated;