我有4个实体列在下面的职位。客户端和产品已在数据库中。问题在于订单和订单产品。我创建Orders对象,然后添加客户机(已经在数据库中)和OrdersProducts的ArrayList,但出现了错误:
object references an unsaved transient instance - save the transient instance before flushing: pl.take.server.model.Orders.clients -> pl.take.server.model.Clients
当我不添加客户机时,数据库中只有OrderProducts的ArrayList,但OrderProducts没有外键。怎么了?我使用Mysql服务器和hibernate。
@Entity
public class Clients implements Serializable {
@Id
@GeneratedValue
private int idClient;
private String clientName, clientSurname, clientCompany;
@OneToMany(mappedBy = "clients")
private List<Orders> listOfOrders = new ArrayList<Orders>();
}
@Entity
public class Orders implements Serializable {
@Id
@GeneratedValue
private int idOrder;
private double totalAmount;
@ManyToOne
@JoinColumn(name = "idClientFK")
private Clients clients;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "orders")
private List<OrdersProducts> listOfProductsInOrder = new ArrayList<OrdersProducts>();
}
@Entity
public class OrdersProducts implements Serializable {
@Id
@GeneratedValue
private int idOrderProduct;
private int productAmount;
private float productsValue;
@ManyToOne
@JoinColumn(name = "idOrderFK")
private Orders orders;
@ManyToOne
@JoinColumn(name = "idProductFK")
private Products products;
}
@Entity
public class Products implements Serializable {
@Id
@GeneratedValue
private int idProduct;
private String productName;
private double productValuePerUnit;
private String productUnit;
private int productCount;
private String productCompany;
@OneToMany(mappedBy = "products")
private List<OrdersProducts> listOfOrdersProducts = new ArrayList<OrdersProducts>();
}
您有双向关联订单
Hibernate不知道主对象是什么。
您有两种选择:
@OneTo多
要级联。(@OneTo多(级联=CascadeType. ALL
)选择第一个选项,您将以这样的方式结束:...
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "idClientFK")
private List<Orders> listOfOrders = new ArrayList<Orders>();
保存逻辑如下:
Clients client = new Client();
List<Orders> orders = new ArrayList<>();
orders.add(new Orders());
clients.setOrders(orders);
enityManager.save(clients);
考虑到你有双向关系,如果你想维持一个顺序,你必须:
>
先决条件:您在SesionScope bean中有一个分离的客户端实体,在WiewScoped后备bean中有一些分离的产品实体。
在您要持久化订单的bussines方法中:
我对Laravel和数据库都是新手。我正在写一个学生评估的网络应用程序。我有一个现有的MySQL数据库,它已经包含了我所需要的一切;但是,我正在使用Laravel的auth user表,并尝试添加一个外键,该外键引用MySQL数据库中的教师表。我一直得到以下错误。。。 在Connection.php第664行: SQLSTATE[HY000]:一般错误:1215不能添加外键约束(SQL:改变表添加
我正在尝试在table of数据库与table of数据库之间创建外键: 用户id int(10)未签名的编号 Id int(10)无符号编号 我创建了查询 "外键约束格式错误"有人能帮助我如何实现这一点吗?
我使用的是ubuntu系统和Mysql 8.0。我试图用jdbc类连接数据库,但出现了一个错误,尽管我添加了mysql连接器。jar文件, 我在下面提到的错误-- JAVAlang.module。FindException:读取模块:/home/surya/eclipse workspace/Advancedjava/bin时出错,原因是:java。lang.module。InvalidModul
问题内容: 我想知道在InnoDB中是否可以有一个带有 外键的 引用另一个表的表? 如果是这样,该怎么办? 问题答案: 我在http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key- constraints.html 上没有看到任何限制。 因此,只需使用 otherdb.othertable ,您会很好。
我试图从一个连接表中获取数据并显示它,所以我有一个用户表和我的连接表。处方用户表具有用户id和处方id。 所以我要做的是在这个userdetails页面上,显示所有的用户处方,并访问处方名称和描述等,但是当我尝试任何一种方法时,我会得到“尝试获取非对象的属性” 我认为,用户模型与处方用户模型有很多关系,处方用户模型与用户模型有一个归属关系。 控制器 用户详细信息刀片
本文向大家介绍Mysql数据库中数据表的优化、外键与三范式用法实例分析,包括了Mysql数据库中数据表的优化、外键与三范式用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Mysql数据库中数据表的优化、外键与三范式用法。分享给大家供大家参考,具体如下: 数据表优化 将商品信息表进行优化 1.创建商品种类表: 2.将商品种类写入商品种类表中: 注意:插入另一个表的查询结果不需要加