我对jpa查询my orderentity中的add参数有问题:
@Entity
@Table(name = "orderbill")
public class OrderEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "quantity")
private int quantity;
@Column(name = "timebought")
private Date timebought;
@Column(name = "totalcost")
private Float totalCost;
@Column(name = "address")
private String address;
@Column(name = "ratenum")
private Integer rateNum;
@Column(name = "ratetext")
private String rateText;
@Column(name = "status")
private boolean status;
@ManyToOne
@JoinColumn(name = "productid")
private ProductEntity products;
@ManyToOne
@JoinColumn(name = "customeremail")
// @JsonBackReference
private PersonEntity customers;
public OrderEntity() {
super();
}
public OrderEntity(OrderDTO order) {
super();
this.id = order.getId();
this.quantity = order.getQuantity();
this.timebought = order.getTimebought();
this.totalCost = order.getTotalCost();
this.address = order.getAddress();
this.rateNum = order.getRateNum();
this.rateText = order.getRateText();
this.status = order.isStatus();
this.products = new ProductEntity(order.getProducts());
this.customers = new PersonEntity(order.getCustomers());
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public ProductEntity getProducts() {
return products;
}
public void setProducts(ProductEntity products) {
this.products = products;
}
public PersonEntity getCustomers() {
return customers;
}
public void setCustomers(PersonEntity customers) {
this.customers = customers;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
if (quantity < 0) {
throw new IllegalArgumentException("Quantity must not below zero");
}
this.quantity = quantity;
}
public Date getTimebought() {
return timebought;
}
public void setTimebought(Date timebought) {
this.timebought = timebought;
}
public float getTotalCost() {
return totalCost;
}
public void setTotalCost(float totalCost) {
if (totalCost < 0) {
throw new IllegalArgumentException("Total must not below zero");
}
this.totalCost = totalCost;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getRateNum() {
return rateNum;
}
public void setRateNum(int rateNum) {
if (rateNum < 0) {
throw new IllegalArgumentException("Rate number must not below zero");
}
this.rateNum = rateNum;
}
public String getRateText() {
return rateText;
}
public void setRateText(String rateText) {
this.rateText = rateText;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
}
我有这样一个存储库:
@Repository
public interface OrderRepository extends JpaRepository<OrderEntity, Integer> {
@Query(nativeQuery = true, value="select o from OrderEntity o where o.customers.getEmail() = :email")
List<OrderEntity> findByCustomers(@Param("email")String email);
}
我用它
@Service
public class OrderServiceImpl implements OrderService {
@Autowired
OrderRepository orderRepository;
public List<OrderEntity> findOrderByCustomer(String email) {
PersonEntity person = personService.getPerson(email);
List<OrderEntity> orderList = orderRepository.findByCustomers(person.getEmail());
if (orderList.isEmpty())
throw new ObjectNotFoundException("Could not find any order bought by email: " + email);
return orderList;
}
但我得到的是
Hibernate: select userentity0_.email as email1_1_, userentity0_.fullname as fullname4_1_, userentity0_.password as password6_1_, userentity0_.role as role8_1_ from persons userentity0_ where userentity0_.email=?
Hibernate: select userentity0_.email as email1_1_, userentity0_.fullname as fullname4_1_, userentity0_.password as password6_1_, userentity0_.role as role8_1_ from persons userentity0_ where userentity0_.email=?
当我使用postman进行测试时,它返回404我如何知道我的参数已添加到查询中?我也无法运行调试。起初,它说我缺少行号信息,但在我将jre1.8更改为jdk1.8之后。它不显示该消息,但也跳过我的断点。请帮帮我
1条答案
按热度按时间uinbv5nw1#
要记录sql语句,可以使用:
要记录参数,可以使用:
如果您在调试时遇到问题,可以添加一个日志,以查看“电子邮件”是什么(除了添加上面提到的跟踪日志配置之外)。我建议您查找有关使用特定ide调试spring boot的文档。