[英]JPA Spring repository findAll() returns an empty List
我正在尝试使用 JPA findAll 获取所有记录。 如果我在终端中运行相同的查询,我会得到一些行,但不是通过 JPA。 我在 stackoverflow 上尝试了其他答案,但没有任何效果。 我尝试添加公共 getter 和 setter,尽管我认为这是由注释完成的。
模型类:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@ToString
@Entity
@Table(name = "tea")
public class Product {
@Id
@GeneratedValue(generator = "prod_seq", strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "prod_seq", sequenceName = "seq_prod", allocationSize = 1, initialValue = 1)
@Column(name = "product_id")
private int productId;
private String name;
@Column(name = "price_per_kg")
private int pricePerKg;
private String type;
@Lob
@Column(length = 2000)
private String description;
@Column(name = "image_url")
private String imageUrl;
private String category;
}
服务等级:
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.tea.exceptions.ProductNotFoundException;
import com.tea.models.Product;
import com.tea.repository.ProductRepository;
@Service
public class ProductServiceImpl implements ProductService{
@Autowired
ProductRepository productRepository;
@Override
public List<Product> getAll() throws ProductNotFoundException {
return productRepository.findAll();
}
}
编辑:添加存储库代码:
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import com.tea.models.Product;
public interface ProductRepository extends JpaRepository<Product,Integer >{
@Query("from Product where type like :type ")
List<Product> findByType( String type);
@Query("from Product where type =?2 and category= ?1")
List<Product> findByCategoryAndType(String category, String type);
@Query("from Product where category like :category")
List<Product> findByCategory(String category);
}
我认为查询应该包含像 Product p 这样的表的别名,然后像 p.type 这样的条件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.