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

     2023-03-17     219

关键词:

【中文标题】Springboot jpa:实体无法绑定不在表列中的自定义查询中的数据【英文标题】:Springboot jpa : Entity can't bind data from custom query that's not in table column 【发布时间】:2021-12-13 10:51:22 【问题描述】:

我使用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 -- 接口

@Repository
public interface NewsRepository extends JpaRepository<NewsModel, Integer> 

    @Query(value = "(MY CUSTOM QUERY)", nativeQuery = true)
    NewsModel getNewsWithNextAndBefore(Integer boardNo);

【问题讨论】:

尝试使用这个 jpa 查询,从 NewsModel 模型中选择 model.boardNo,其中 model.boardNo in (select min(m.boardNo) from NewModel m where m.status = 0 and m.boardNo > 65) ,返回类型是 Integer 而不是 NewsModel 并删除 nativeQuery 参数 【参考方案1】:

您是否尝试过在实体类下提及“架构”名称?也许表格没有正确映射,这可能是个问题。

【讨论】:

jpa实体类与应用不在一个包导致错误:java.lang.illegalargumentexception:notamanagedtype:classaaa

参考文章:springboot:与JPA结合出现异常Causedby:java.lang.IllegalArgumentException:Notamanagedtype:classxxx-Victory9477的博客-CSDN博客----------------------------------1、SpringBoot默认的扫描方式是扫描启动类所在包的实体类,所以如果实体类和应用在同... 查看详情

JPA:将 OneToOne Long 值(不是实体)映射到另一个不是主键的表列

】JPA:将OneToOneLong值(不是实体)映射到另一个不是主键的表列【英文标题】:JPA:MappingaOneToOneLongvalue(notanentity)toanothertablescolumnwhichisnotaprimarykey【发布时间】:2019-06-0708:37:09【问题描述】:所以我有一个实体,它与表中的现有数... 查看详情

无法打开 JPA 实体管理器

...:43:29【问题描述】:我正在使用将信息存储在数据库中的SpringBOOT应用程序。我收到错误:org.springframework.transaction.CannotCreateTransactionException:无法为事务打开JPAEntityManager我尝试在INTERNET上搜索 查看详情

如何使用外键保存实体而不在 JPA 中加载相关实体?

】如何使用外键保存实体而不在JPA中加载相关实体?【英文标题】:HowdoIsaveanentitywithforeignkeywithoutloadingtherelatedentityinJPA?【发布时间】:2012-10-1021:45:46【问题描述】:我有两个实体:Account@IdLongid;Preference...@ManyToOneprivateAccountaccount... 查看详情

无法使用 Spring Boot 更新现有实体

】无法使用SpringBoot更新现有实体【英文标题】:ExistingentitycannotbeupdatedwithSpringBoot【发布时间】:2016-06-0809:07:49【问题描述】:我的SpringBoot应用有以下类:董事会(JPA实体)@Entity@Table(name="board")publicclassBoardpublicstaticfinalintIN_PROGRE... 查看详情

springboot整合jpa

1.初始化项目,引入相关依赖项目中引入的依赖关系当中最主要的 spring-boot-starter-data-jpa包主要依赖如下,可以看到JPA的底层主要是通过hibernate实现的。2.创建实体类,利用JPA生成数据表2.1编写实体类,配置好映射关系,从而... 查看详情

Springboot 2.1.9.RELEASE - 使用 JPA 持久化具有父子关系的实体

】Springboot2.1.9.RELEASE-使用JPA持久化具有父子关系的实体【英文标题】:Springboot2.1.9.RELEASE-PersistEntitieswithParentChildrelationshipusingJPA【发布时间】:2021-07-2209:34:18【问题描述】:我在mysql中的Employee和Address表之间存在一对多关系。我... 查看详情

无法使用 Spring Data JPA / Hibernate 在事务中两次保存具有不可变集合的实体

...Hibernate【发布时间】:2021-08-2423:31:29【问题描述】:我的SpringBoot+SpringDataJPA应用程序中有以下服务层功能:@Servi 查看详情

Glassfish - 无法使用 JPA 删除实体

】Glassfish-无法使用JPA删除实体【英文标题】:Glassfish-cannotremoveentityusingJPA【发布时间】:2016-03-1622:50:13【问题描述】:在我对JPA的探索中,我有下面的代码(我理解不应该在生产中使用)。运行我的代码会产生以下错误:java.lan... 查看详情

JPA/Hibernate 无法创建名为 Order 的实体

】JPA/Hibernate无法创建名为Order的实体【英文标题】:JPA/Hibernatecan\'tcreateEntitycalledOrder【发布时间】:2011-04-0517:10:03【问题描述】:我正在使用Hibernate/JPA并有一个名为Order的@Entity对象,它使用Hibernate的动态表生成指向MySQL数据库,... 查看详情

springboot集成jpa使用

实体类dao层  查看详情

如何在spring boot中开发JPA双向实体

】如何在springboot中开发JPA双向实体【英文标题】:howtodevelopJPAbi-directionalentitiesinspringtoot【发布时间】:2016-08-1916:10:31【问题描述】:我是SpringBoot和jpa/hibernate的新手,请承担我对术语的不准确使用。我有两个实体:书和地址。... 查看详情

不在jpa的persistence.xml文件里配置entityclass的解决的方法

...Hibernate的JPA方式中,须要在persistence配置文件里定义每个实体类。这样很地不方便。2种方法能够解决此问题:这2种方式都能够实现不用在persistence.xml文件里配置每个实体类,从而免去每个Entity都要在persistence.xml文件里配置的烦... 查看详情

springboot整合jpa

1.编写一个实体类bean和数据表进行映射,并且配置好映射关系packagecom.seegot.springboot06datajpa.entity;importlombok.Data;importjavax.persistence.*;/***@program:springboot-06-data-jpa*@description:*@author:PPZhang*@create:2020-0 查看详情

无法通过持久性删除删除 jpa 子实体

】无法通过持久性删除删除jpa子实体【英文标题】:Cannotremovejpachildentitybypersistanceremove【发布时间】:2017-08-0123:47:35【问题描述】:我可以通过普通的HQL删除任何行,例如Queryq=em.createQuery("DELETEFROMCitiesWHEREid=:id");但我想删除它像C... 查看详情

idea生成jpa实体类

参考技术A新建springboot工程,截图如下:建工程时选择JPA模块Database中配置mysql连接填写mysql连接信息打开view视图打开persistence生成的实体类如下2022-03-16 查看详情

休眠查询异常:在 JPA 查询期间无法解析实体属性

】休眠查询异常:在JPA查询期间无法解析实体属性【英文标题】:Hibernatequeryexception:couldnotresolveentitypropertyduringJPAquery【发布时间】:2014-07-1813:01:59【问题描述】:我正在尝试在我的休眠表中查询RunEntity。查询中的第一个where子句... 查看详情

无法使用带有 InhertanceType.JOINED 的 Spring JPA 持久化实体

】无法使用带有InhertanceType.JOINED的SpringJPA持久化实体【英文标题】:CannotpersistentitywithSpringJPAwithInhertanceType.JOINED【发布时间】:2020-02-2122:08:27【问题描述】:我有以下JPA实体类。还有另一个扩展Project的实体OptProject。我正在使用I... 查看详情