码迷,mamicode.com
首页 > 编程语言 > 详细

springboot jpa---->总结一下遇到的问题

时间:2020-07-03 11:00:36      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:interface   keystone   数据库   epo   spring   trie   遇到的问题   EDA   let   

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.

springboot jpa---->总结一下遇到的问题

标签:interface   keystone   数据库   epo   spring   trie   遇到的问题   EDA   let   

原文地址:https://www.cnblogs.com/huhx/p/13228766.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!