我有Spring Web应用程序(JPA/Hibernate MySQL)。我有三门课。
前10名
public class Top10 {
@Id
Product id;
Product name;
Integer soluong;
}
产品
public class Product implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
@Column(name = "name")
String name;
@Column(name = "image")
String image;
@Column(name = "count")
Integer count;
@Column(name = "special")
Boolean special;
@Column(name = "price")
Double price;
@Column(name = "description")
String description;
@ManyToOne
@JoinColumn(name = "category_id", referencedColumnName = "id")
Category categoryId;
@Column(name = "create_date")
Date createdate = new Date();
@ManyToOne
@JoinColumn(name = "product_status_id")
ProductStatus productStatus;
@JsonIgnore
@OneToMany(mappedBy = "product")
List<OrderDetail> orderDetails;
}
产品详细信息
public class OrderDetail implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
Double price;
Integer quantity;
@ManyToOne
@JoinColumn(name = "Productid")
Product product;
@ManyToOne
@JoinColumn(name = "Orderid")
Order order;
}
我有一个ProductDao类用于从数据库中检索数据:
@Repository
public interface ProductDAO extends JpaRepository<Product, Long> {
@Query(value ="select top(10) od.ProductId,p.name , sum(Quantity) as
Quantity\r\n"
+ "from Products p, order_details od\r\n"
+ "where p.id = od.ProductId\r\n"
+ "group by p.name, od.ProductId\r\n"
+ "order by Quantity desc",nativeQuery =true)
List<Top10> top10Product();
}
和一个类接口:
产品接口
public interface productService {
List<Top10> top10product();
}
产品接口说明
@Service
public class productServiceImpl implements productService{
@Autowired
ProductDAO dao;
@Override
public List<Top10> top10product() {
// TODO Auto-generated method stub
return dao.top10Product();
}
}
【这样的结果][1]
现在我想用这个方法列表getAll()从数据库中“拆箱”数据
我在我的spring控制器类中有一个方法:
@CrossOrigin("*")
@RestController
@RequestMapping("/rest/chart")
public class chartRestController {
@Autowired
productService productService;
@GetMapping()
public List<Top10> getAll(){
return productService.top10product();
}
}
我有错误:
出现意外错误(类型 = 内部服务器错误,状态 = 500)。未能从类型 [java.lang.Object[]] 转换为类型 [com.gymshop.domain.Top10] 以获取值 “{8, ISOJECT Premium EVOGEN - Whey Isolate, 6}”;嵌套的例外是 org.springframework.core.convert.ConverterNotFoundException:没有找到能够从类型 [java.lang.Integer] 转换为类型 [com.gymshop.domain.Top10] org.springframework.core.convert.ConversionFailedException: 未能从类型 [java.lang.Object[]] 转换为类型 [com.gymshop.domain.Top10] 的值 '{8, ISOJECT Premium EVOGEN - Whey Isolate, 6}';嵌套的例外是 org.springframework.core.convert.ConverterNotFoundException: 没有找到能够从类型 [java.lang.Integer] 转换为类型 [com.gymshop.domain.Top10] 的转换器,网址为 org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47) at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:192) at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:175) at org.springframework.data.repository.query.ResultProcessor$ProjectingConverter.convert(ResultProcessor.java:313) at org.springframework.data.repository.query.ResultProcessor$ChainingConverter.lambda$and$0(ResultProcessor.java:229) at org.springframework.data.repository.query.ResultProcessor$ChainingConverter.convert(ResultProcessor.java:240) atorg.springframework.data.repository.query.ResultProcessor.processResult(ResultProcessor.java:156) at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:158) at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143)
要定义一个实体(表),你需要使用spring标签(@Entity)吗
@Entity
@Table(name = "Top10")
public class Top10 {
@Id
Product id;
Product name;
Integer soluong;
}
您的<code>Top10<code>类不应该如下所示吗?
public class Top10 {
Long id;
Product name;
String name;
}
我需要加入一些表并从中返回结果。查询在JpaRepository中 但是当在测试中执行查询时,我得到: 我猜问题出在查询本身,但是想不出为什么它不想返回Point类型的对象? 更新:点实体:
我必须运行一个本机查询来检索要插入到声明它的Jpa存储库以外的模型中的数据,当我执行函数loadValoriPreventivoUnica时,我有以下错误。我该如何解决这个问题?这是由于什么原因? 错误: [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap]键入[
问题内容: 我在代码隐藏中收到转换失败的错误。我的代码如下: 我收到以下错误: 将nvarchar值转换为数据类型int时,转换失败。 在这里必须进行哪些更改? 问题答案: 我想这是一个整数,但您正在分配一个字符串。因此,这可能会解决它: 编辑:由于您已评论该会话存储了用户名,但该列是一个int列,因此您有三个选择: 更改会话以存储用户标识而不是名称 更改列以存储用户名 从存储用户名的表中选择用户
问题内容: 我创建了一个过程并收到了此消息 将varchar值’%’转换为数据类型int时,转换失败。 我不知道这可能是什么,但是当我将过程更改为这样时: 似乎工作正常。我是SQL的新手,所以可以得到任何帮助,也许有更好的方法来做我想做的事情? 问题答案: 这是在子句中: 是一个整数。因此,您需要将其转换为字符串: 为什么要使用称为的列是可疑的。也许您只想要:
5.5 Spring类型转换 {#toc_9} Spring 3引入了core.convert包来提供一个一般类型的转换系统。这个系统定义了实现类型转换逻辑的服务提供接口(SPI)以及在运行时执行类型转换的API。在Spring容器内,这个系统可以当作是PropertyEditor的替代选择,用于将外部bean的属性值字符串转换成所需的属性类型。这个公共的API也可以在你的应用程序中任何需要类型转