我使用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 " ?名称下的实体类?
可能表没有得到正确映射,这可能是一个问题。