java - 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 注释,但它似乎不起作用。
新闻模型.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;
(...)
}
新闻响应.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 -- 接口
@Repository
public interface NewsRepository extends JpaRepository<NewsModel, Integer> {
@Query(value = "(MY CUSTOM QUERY)", nativeQuery = true)
NewsModel getNewsWithNextAndBefore(Integer boardNo);
}
解决方案
您是否尝试过在实体类下提及“架构”名称?也许表格没有正确映射,这可能是一个问题。
推荐阅读
- unit-testing - 如何使用 scalamock lib 模拟 org.apache.spark.streaming.State?
- buildbot - Buildbot 安装需要 msvc14
- angular - 从图表的方法中获取值
- laravel - 发送带有用户注册的确认邮件
- javascript - 带有绑定的箭头函数或普通函数(最佳实践)
- database - 如何向 DB2 中的列插入超过 32KB 的数据?
- sql - 如何根据多个指标获取不同的记录
- java - 如何从弹簧启动重定向/转发角度页面?
- spring - 在 Spring 4 中 Rest API 调用与 UrlBasedViewResolver 冲突
- asterisk - Astrisk 中的媒体(视频)谈判