我编写的应用程序需要json格式的数据,但获取的数据没有标题
型号:
package intj.frontend.sellkon.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.*;
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "Products")
public class ProductModel {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private Long id;
@Column(name = "Category")
private String category;
@Column(name = "ProductName")
@Lob
private String productName;
@Column(name = "Price")
private int price;
@Column(name = "Slider")
private Boolean slider;
@Column(name = "SpecialOffer")
private Boolean specialOffer;
@Column(name = "NewPrice")
private int newPrice;
@Column(name = "FullDescription")
@Lob
private String fullDescription;
@Column(name = "Image")
@Lob
private String image;
}
存储库:
package intj.frontend.sellkon.repository;
import intj.frontend.sellkon.model.ProductModel;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ProductRepository extends JpaRepository<ProductModel,Long> {
@Query(value = "select id,image,product_name,price,new_price from products where slider is true", nativeQuery = true)
List<String> getSliderContent();
}
服务
package intj.frontend.sellkon.Service;
import intj.frontend.sellkon.repository.ProductRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class ProductService {
@Autowired
private ProductRepository productRepository;
public List<String> getSliderContent(){
List<String> lstMovie = new ArrayList<>();
lstMovie = productRepository.getSliderContent();
return lstMovie;
}
}
控制器:
package intj.frontend.sellkon.Controller;
import intj.frontend.sellkon.Service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@CrossOrigin("*")
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping("/sl")
public List<String> getSliderContent(){
List<String> ls = productService.getSliderContent();
return ls;
}
}
在输出上,我得到以下数据:
["1,https://cdn.x-kom.pl/i/setup/images/prod/big/product-new-big,,2021/10/pr_2021_10_8_14_22_27_699_08.jpg,Acer Swift 3 i5-1135G7/16GB/512/W11 Srebrny Intel Evo,4800,4500"]
但我需要这种格式的数据:
["id: 1, image: 'https://cdn.x-kom.pl/i/setup/images/prod/big/product-new-big,,2021/10/pr_2021_10_8_14_22_27_699_08.jpg',product name: 'Acer Swift 3 i5-1135G7/16GB/512/W11 Srebrny Intel Evo', price: 4800,new_price: 4500"]
有人能解释一下怎么做吗?我认为问题是因为我返回了字符串,但如何用本机查询返回Json对象呢?
如果以String
的形式返回数据,则只会得到值,而不是列,因此必须在列表中传递ProductModel
,而不是String
。
下面是修改后的代码:
存储库
@Repository
public interface ProductRepository extends JpaRepository<ProductModel,Long> {
@Query(value = "Select id, image, product_name, price, new_price from products WHERE slider = ?", nativeQuery = true)
List<ProductModel> getSliderContent(Boolean slider);
}
服务
@Service
public class ProductService {
@Autowired
private ProductRepository productRepository;
public List<ProductModel> getSliderContent(Boolean slider){
return productRepository.getSliderContent(slider);
}
}
控制器
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping("/sl")
public ResponseEntity<List<ProductModel>> getSliderContent(){
List<ProductModel> ls = productService.getSliderContent("true");
return ls;
}
}
假设我们有下表,命名为“文档”: 两个*日期列是时间戳,而另一个都是字符串(甚至是) 目前我在Spring存储库中使用了以下本机查询: 如您所见,这必须用作本机查询,因为JPA不支持子句中的选择查询。现在我必须将此查询转换为JPQL查询,以使其独立于数据库。这在某种程度上是可能的吗?欢迎其他方法,例如使用规范或类似的...
我刚刚开始将QueryDSL集成到一个Spring Boot项目中,我正在寻找一种从现有实体bean构建查询的方法。使用,只要参数与bean对齐,通过控制器的GET请求传入实体是非常好和容易的: 在service类中,我可以使用BooleanBuilder构建查询: 那么有没有一种好的、整洁的方法来处理这种情况,而不会用样板文件堵塞我的服务课程呢?
问题内容: 是否有一个库,可以像JPA中那样以编程方式构建SPARQL查询,或者可以像使用for SQL 一样构建查询? 问题答案: 您可以使用两种方法在Jena中以编程方式构建查询:语法或代数。耶拿维基上有一个介绍。 使用代数,您将执行以下操作: (摘自Wiki页面) 不是(也不是预期的),但是那是其中的一些方式。您而不是AND,而您想要进行OR等。痛点是我的经验中的表达式:您可能想从字符串中解
我正在我的机器上的docker容器中运行服务器。我想从我的机器(主机)向容器内的服务器发送HTTP请求。当我在容器中使用HTTP发送GET请求时,它会检测服务器。但是,如果我向容器的IP地址发送相同的请求(这次是从容器外部的主机),它会告诉我: 或者这个: 下面是我启动容器时使用的命令: 以及我为发送请求而运行的Python脚本: 下面是我用来查找容器IP地址的命令: 我知道这个问题,但我没有使用
查询构建器建立在 Database Access Objects 基础之上,可让你创建 程序化的、DBMS无关的SQL语句。相比于原生的SQL语句,查询构建器可以帮你 写出可读性更强的SQL相关的代码,并生成安全性更强的SQL语句。 使用查询构建器通常包含以下两个步骤: 创建一个 yii\db\Query 对象来代表一条 SELECT SQL 语句的不同子句(例如 SELECT, FROM)。 执
我想在我的repo中写一个本机查询“Select*in from table”。表名与实体名不同。 运行查询时, 1如果我把实体名称返回表未找到。 2如果我将表名放在查询中,则查询的验证失败。 问题是 如果我使用"Select*from TariffPacks r2..., nativeQuery=true",我得到错误TariffPacks不存在。如果我使用"Select*from RECHAR