Springboot jpa:实体无法绑定来自不在表列中的自定义查询的数据



我使用java Springboot, JPA, mysql.

我需要从我的自定义查询和一些数据(nextBno, beforeBno等)不是DB表列获取数据。它们来自我的查询,如下所示:

(
SELECT boardNo FROM table_news
WHERE boardNo IN (
SELECT MIN(boardNo)
FROM table_news A
WHERE status=0 AND boardNo > 65
)
) AS nextBNo,

当我从查询中获取数据时,数据获取很好,因为查询本身很好。但结果是填充为null。我想我应该从JPA模型(实体)文件中修复一些东西,以便数据可以很好地绑定,但不知道究竟如何。我试着添加@Transient注释,但它似乎不起作用。

NewsModel.java


@Data 
@Entity
@Table(name = "table_news")
@NoArgsConstructor
@AllArgsConstructor
@DynamicInsert
@DynamicUpdate
public class NewsModel {
@Id
@Column(name = "boardNo")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer boardNo;
(...)
@Transient
private Integer nextBNo;
@Transient
private Integer beforeBNo;

(...)
}

NewsResponse.java

@Data
@NoArgsConstructor
@AllArgsConstructor
public class NewsResponse {
private Integer boardNo;
(...)
@Transient
private Integer nextBNo;
@Transient
private Integer beforeBNo;
(...)
public NewsResponse(NewsModel model){
this.boardNo = model.getBoardNo();

(...)
this.nextBNo = model.getNextBNo();
this.beforeBNo = model.getBeforeBNo();
}

NewsRepository.java——interface

@Repository
public interface NewsRepository extends JpaRepository<NewsModel, Integer> {
@Query(value = "(MY CUSTOM QUERY)", nativeQuery = true)
NewsModel getNewsWithNextAndBefore(Integer boardNo);
}

你有没有试过提到" schema " ?名称下的实体类?

可能表没有得到正确映射,这可能是一个问题。

最新更新