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

2023-05-05,,

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---->总结一下遇到的问题的相关教程结束。

《springboot jpa---->总结一下遇到的问题.doc》

下载本文的Word格式文档,以方便收藏与打印。