Spring boot org.hibernate.exception.DataException:无法在spring引导和数据JPA中执行查询

Spring boot org.hibernate.exception.DataException:无法在spring引导和数据JPA中执行查询,spring-boot,spring-data-jpa,Spring Boot,Spring Data Jpa,当我尝试实现JPQL查询时,我得到以下错误: { "message": "could not execute query; SQL [select alerts0_.nalert_id as nalert_i1_0_, alerts0_.bis_active as bis_acti2_0_, alerts0_.dalert_date as dalert_d3_0_, alerts0_.ndept_to as ndept_to4_0_, alerts0_.ninst_to as ninst_to5

当我尝试实现JPQL查询时,我得到以下错误:

{
"message": "could not execute query; SQL [select alerts0_.nalert_id as nalert_i1_0_, alerts0_.bis_active as bis_acti2_0_, alerts0_.dalert_date as dalert_d3_0_, alerts0_.ndept_to as ndept_to4_0_, alerts0_.ninst_to as ninst_to5_0_, alerts0_.nreceiver_id as nreceive6_0_, alerts0_.nsender_id as nsender_7_0_, alerts0_.nsubdept_to as nsubdept8_0_, alerts0_.salert_action_data as salert_a9_0_, alerts0_.salert_desc as salert_10_0_, alerts0_.salert_subject as salert_11_0_, alerts0_.salert_type as salert_12_0_ from alerts alerts0_ where alerts0_.ninst_to=?]; nested exception is org.hibernate.exception.DataException: could not execute query",
"error": "Internal Server Error",
"path": "/spacestudy/rockefeller/control/alerts/getAlertDetails"
}
我的存储库查询如下所示

@Query("SELECT a FROM Alerts a")
public List<Alerts> findByAlertType();
我的模型类Alerts.java如下所示:

alert= alertsRepositoryObj.findByAlertType();
@Entity
@Table(name="alerts")
public class Alerts implements Serializable
{
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "alerts_seq_generator")
@SequenceGenerator(name = "alerts_seq_generator", sequenceName = "alerts_seq",allocationSize=1)
@Column(name="nalert_id",columnDefinition="serial")
public Integer nalertId;

@Column(name="salert_desc")
public String salertDesc;

@NotNull
@Column(name="nsender_id")
public Integer nsenderId;

@Column(name="dalert_date")
public LocalDate dalertDate;

@Column(name="salert_subject")
public String salertSubject;

@Column(name="salert_action_data")
public String salertActionData;

@Column(name="salert_type")
public String salertType;

@Column(name="ninst_to")
public Integer ninstTo;

@Column(name="ndept_to")
public Integer nDeptTo;

@Column(name="nsubdept_to")
public Integer nsubdeptTo;

@Column(name="nreceiver_id")
public Integer nreceiverId;

@NotNull
@Column(name="bis_active")
public Boolean bisActive=true;

@ManyToOne(optional = true)
@JoinColumn(name = "salert_action_data", insertable = false, updatable = false)
public RoomTransfer roomTransfer;   

public Integer getNalertId() 
{
    return nalertId;
}

public void setNalertId(Integer nalertId)
{
    this.nalertId = nalertId;
}

public String getSalertDesc() 
{
    return salertDesc;
}

public void setSalertDesc(String salertDesc)
{
    this.salertDesc = salertDesc;
}

public Integer getNsenderId()
{
    return nsenderId;
}

public void setNsenderId(Integer nsenderId)
{
    this.nsenderId = nsenderId;
}

public LocalDate getDalertDate() 
{
    return dalertDate;
}

public void setDalertDate(LocalDate dalertDate)
{
    this.dalertDate = dalertDate;
}

public String getSalertSubject()
{
    return salertSubject;
}

public void setSalertSubject(String salertSubject) 
{
    this.salertSubject = salertSubject;
}

public String getSalertActionData()
{
    return salertActionData;
}

public void setSalertActionData(String salertActionData)
{
    this.salertActionData = salertActionData;
}

public String getSalertType()
{
    return salertType;
}

public void setSalertType(String salertType) 
{
    this.salertType = salertType;
}

public Integer getNinstTo() 
{
    return ninstTo;
}

public void setNinstTo(Integer ninstTo)
{
    this.ninstTo = ninstTo;
}

public Integer getnDeptTo()
{
    return nDeptTo;
}

public void setnDeptTo(Integer nDeptTo) 
{
    this.nDeptTo = nDeptTo;
}

public Integer getNsubdeptTo()
{
    return nsubdeptTo;
}

public void setNsubdeptTo(Integer nsubdeptTo)
{
    this.nsubdeptTo = nsubdeptTo;
}

public Integer getNreceiverId() 
{
    return nreceiverId;
}

public void setNreceiverId(Integer nreceiverId)
{
    this.nreceiverId = nreceiverId;
}

public Boolean getBisActive()
{
    return bisActive;
}

public void setBisActive(Boolean bisActive)
{
    this.bisActive = bisActive;
}   

public RoomTransfer getRoomTransfer()
{
    return roomTransfer;
}

public void setRoomTransfer(RoomTransfer roomTransfer) 
{
    this.roomTransfer = roomTransfer;
}

public Alerts() 
{
    super();
}       
}

为什么会发生这种错误?因为这是一个简单的JPQL查询。我如何在这里排除准确的错误?

奇怪的是,这里有where子句
where alerts0.ninst\u to=?
,而JPQL中没有。你能检查一下下列各项吗。显示整个回购界面。2.芬德尔有用吗。它相当于您的查询。3.检查注释。从spring数据查询,对吗?4.使用
by
word的方法在spring数据中是特殊的,可以生成where子句@查询应具有更高的优先级(请参见3),但请检查重命名是否有帮助。我在您的实体中未找到任何alertType属性,我可以看到SalertTypeOK,名称在定义查询时无关紧要。现在了解:)您是否有任何stacktraces指示此查询无法执行的原因?