Mybatis-Plus+JPA+postgresql存储复杂类型、TypeHandle使用
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public interface CustomTypeRepository extends JpaRepository<CustomTypeEntity, Long> {
@Query(value = "SELECT * FROM custom_type_table WHERE type_id = :typeId", nativeQuery = true)
List<CustomTypeEntity> findByTypeId(@Param("typeId") String typeId);
// 使用JPA的方法命名约定查询
List<CustomTypeEntity> findByTypeIdAndStatus(String typeId, String status);
// 使用@Query注解进行复杂查询,并且可以直接返回Map
@Query(value = "SELECT key, value FROM custom_type_table WHERE type_id = :typeId", nativeQuery = true)
List<Map<String, Object>> findKeyValueByTypeId(@Param("typeId") String typeId);
}
在这个例子中,我们定义了一个CustomTypeRepository
接口,它继承自JpaRepository
。我们使用了原生SQL查询来获取特定typeId
的CustomTypeEntity
实体列表,同时演示了如何使用JPA的方法命名约定来进行查询。最后,我们使用@Query
注解来执行一个返回键值对结果的查询,并且直接返回一个Map<String, Object>
的列表。这样的设计可以让你在使用ORM框架时灵活处理复杂类型的数据。
评论已关闭