zoukankan      html  css  js  c++  java
  • springboot jpa---->总结一下遇到的问题

    Native Query throw exception

    • dto code
    import lombok.Value;
    
    @Value
    public class IdsOnly {
    
        Integer id;
        String otherId;
    }
    
    • repository
    public interface TestTableRepository extends JpaRepository<TestTable, Integer> {
    
        @Query(value = "select id, otherId from TestTable where CreationDate > ?1", nativeQuery = true)
        public Collection<IdsOnly> findEntriesAfterDate(Date creationDate);
    }
    
    • service
    List<IdsOnly> results = ttRepo.findEntriesAfterDate(theDate);  
    
    • exception
    org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [com.example.IdsOnly]
    

    解决方法有两种

    • 使用NativeQuery:将IdsOnly更换成接口,提供属性的get方法。
    public interface IdsOnly {
        Integer getId();
        String getOtherId();
    }
    
    • 不使用NativeQuery
    @Query("select new com.example.IdsOnly(t.id, t.otherId) from TestTable t where t.creationDate > ?1")
    

    Jpa中没有update方法

    jpa中只有save方法,如果你传递的对象的主键在数据库中存在,那么就是更新操作。否则就是插入操作。

    Delete operation

    JpaRepository Not supported for DML operations [delete query]
    
    • Repository: add @Modifying
    @Modifying
    void deleteByUserIdAndToolId(Integer userId, Integer toolId);
    
    • Service: add @Transactional
    @Transactional
    public void doDeleteUserTool(Integer userId, Integer toolId) {
        userToolMapper.deleteByUserIdAndToolId(userId, toolId);
    }
    

    To be continue

    Industry is the soul of business and the keystone of prosperity.
    

  • 相关阅读:
    Python之模块
    Python之request模块-基础用法
    Linux小知识点
    python之pip安装软件包常用命令
    windows设置多个JDK环境
    window配合虚拟机VMware搭建虚拟ubuntu服务器入坑集锦
    Linux服务器相关信息查询
    达梦数据库
    创业公司如何快速构建高效的监控系统?
    干货分享:智慧工厂时代下大数据 + 智能的深度实践
  • 原文地址:https://www.cnblogs.com/huhx/p/13228766.html
Copyright © 2011-2022 走看看