这是我的数据库
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
products_id int,
PRIMARY KEY (OrderID),
FOREIGN KEY (products_id) REFERENCES product(products_id)
);
我生成了 NetBeans 实体类,它给出了以下代码;****
package Entity;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "orders")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Orders.findAll", query = "SELECT o FROM Orders o")
, @NamedQuery(name = "Orders.findByOrderID", query = "SELECT o FROM Orders o WHERE o.orderID = :orderID")
, @NamedQuery(name = "Orders.findByOrderNumber", query = "SELECT o FROM Orders o WHERE o.orderNumber = :orderNumber")})
public class Orders implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "OrderID")
private Integer orderID;
@Basic(optional = false)
@Column(name = "OrderNumber")
private int orderNumber;
public Orders() {
}
public Orders(Integer orderID) {
this.orderID = orderID;
}
public Orders(Integer orderID, int orderNumber) {
this.orderID = orderID;
this.orderNumber = orderNumber;
}
public Integer getOrderID() {
return orderID;
}
public void setOrderID(Integer orderID) {
this.orderID = orderID;
}
public int getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(int orderNumber) {
this.orderNumber = orderNumber;
}
@Override
public int hashCode() {
int hash = 0;
hash += (orderID != null ? orderID.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof Orders)) {
return false;
}
Orders other = (Orders) object;
if ((this.orderID == null && other.orderID != null) || (this.orderID != null && !this.orderID.equals(other.orderID))) {
return false;
}
return true;
}
@Override
public String toString() {
return "Entity.Orders[ orderID=" + orderID + " ]";
}
}
我是JPA的新手,我只想通过输入“products_id”来获得“订单号”,这是可能的吗?** 我想要这样的东西**
public Orders findOrderNumber(int productsId) {
EntityManager em = getEntityManager();
Orders order= null;
try {
order= (Orders) em.createQuery("SELECT o FROM Orders o WHERE o.productsId=" + productsId).getSingleResult();
} catch (NoResultException e) {
order= null;
}
return order;
}
您应该使用准备好的语句。
如何在JPA中使用预准备语句
现在,您的查询容易受到 SQL 注入的攻击:https://www.owasp.org/index.php/SQL_Injection
到底是什么现在不起作用了?
尝试以下代码:
// Retrieve operation using the JPA Entity Manager
order = em.find(Orders.class,productsId);
// get the orderNumber from an instance of Entity Orders
int orderNumber = order.getOrderNumber();
下面的代码仅供演示。 我的实体bean如下所示 问题:假设在查询时,我只有employeeId和branchName,而我不想在departmentName上放置filter 在这种情况下,如何编写存储库方法 JPA是否有针对此类场景的内置内容?
问题内容: 我想编写一个Spring Data JPA存储库接口方法签名,该签名使我可以在该实体中找到具有嵌入式对象属性的实体。有人知道这是否可行吗? 这是我的代码: 我可以使用Spring Data为此编写查询吗? 问题答案: 此方法名称应能解决问题: 有关参考文档的查询派生的部分中的更多信息。
问题内容: 我有两个域,是一对多关系中的一部分。我想知道如何查询孩子的父母FK吗?贝娄是父母/孩子的伪代码 上级: 儿童: 尽管我没有明确创建FK,但是grails会自行创建MySQL数据库。但是,当我想像这样通过FK查询孩子时: 我收到一个错误:找不到类[class mgr.AlumLanguage]的名称[alumProfileId]的属性 关于如何做到这一点的任何建议? 谢谢杰森 问题答
在我的遗留应用程序中,我有一个国家表、状态表和一个国家和州的映射表,几乎没有额外的列。 我创建了这样一个实体类。 我的仓库。 我想检查映射表中是否存在状态。以下两种方法都不起作用。 正确的方法是什么?
我正在用Java开发一个使用JPA的路线规划系统。我需要创建一个findBy方法,通过包含它的城市列表来查找路线。以下是课程: 现在我尝试了,但并不惊讶它不起作用,如下所示: 有没有一种简单的方法可以使用JPA,或者我必须编写一个困难的自己的@Query并以某种方式迭代,才能通过集合找到一个实体?