【发布时间】:2017-04-04 11:47:56
【问题描述】:
我是 JPA 方面的新手。我在定义表连接时遇到了麻烦。你能帮助我吗?
下面是 ER 模型。
JPA 实体应该是什么样子?我需要 CRUD 操作 非常感谢!
这是数据库脚本:
CREATE TABLE vidrio (
id_vidrio INT AUTO_INCREMENT NOT NULL,
grosor DOUBLE PRECISION NOT NULL,
largo DOUBLE PRECISION NOT NULL,
ancho DOUBLE PRECISION NOT NULL,
precio DOUBLE PRECISION NOT NULL,
descripcion VARCHAR (250) NOT NULL,
PRIMARY KEY (id_vidrio)
);
CREATE TABLE persona (
id_persona VARCHAR (250) NOT NULL,
nombre VARCHAR (250) NOT NULL,
apellido VARCHAR (250) NOT NULL,
direccion VARCHAR (250) NOT NULL,
ciudad VARCHAR (250) NOT NULL,
telefono VARCHAR (250) NOT NULL,
PRIMARY KEY (id_persona)
);
CREATE TABLE empleado (
id_empleado VARCHAR (250) NOT NULL,
id_persona VARCHAR (250) NOT NULL,
gerente BOOLEAN NOT NULL,
contrasena VARCHAR (250) NOT NULL,
PRIMARY KEY (id_empleado)
);
CREATE TABLE factura (
factura_id INT AUTO_INCREMENT NOT NULL,
fecha DATE NOT NULL,
id_empleado VARCHAR (250) NOT NULL,
id_persona VARCHAR (250) NOT NULL,
id_empleado_corte VARCHAR (250) NOT NULL,
PRIMARY KEY (factura_id)
);
CREATE TABLE detalle_factura (
factura_id INT NOT NULL,
id_vidrio INT NOT NULL,
PRIMARY KEY (factura_id)
);
CREATE TABLE cotizacion (
cotizacion_id INT NOT NULL,
id_empleado VARCHAR (250) NOT NULL,
id_persona VARCHAR (250) NOT NULL,
PRIMARY KEY (cotizacion_id)
);
CREATE TABLE detalle_cotizacion (
cotizacion_id INT NOT NULL,
id_vidrio INT NOT NULL,
PRIMARY KEY (cotizacion_id)
);
数据库约束
ALTER TABLE detalle_factura ADD CONSTRAINT vidrio_detalle_factura_fk
FOREIGN KEY (id_vidrio)
REFERENCES vidrio (id_vidrio)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE detalle_cotizacion ADD CONSTRAINT vidrio_detalle_cotizacion_fk
FOREIGN KEY (id_vidrio)
REFERENCES vidrio (id_vidrio)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE empleado ADD CONSTRAINT persona_empleado_fk
FOREIGN KEY (id_persona)
REFERENCES persona (id_persona)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE factura ADD CONSTRAINT persona_factura_fk
FOREIGN KEY (id_persona)
REFERENCES persona (id_persona)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE cotizacion ADD CONSTRAINT persona_cotizacion_fk
FOREIGN KEY (id_persona)
REFERENCES persona (id_persona)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE cotizacion ADD CONSTRAINT empleado_cotizacion_fk
FOREIGN KEY (id_empleado)
REFERENCES empleado (id_empleado)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE factura ADD CONSTRAINT empleado_factura_fk
FOREIGN KEY (id_empleado)
REFERENCES empleado (id_empleado)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE factura ADD CONSTRAINT empleado_factura_fk1
FOREIGN KEY (id_empleado_corte)
REFERENCES empleado (id_empleado)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE detalle_factura ADD CONSTRAINT factura_detalle_factura_fk
FOREIGN KEY (factura_id)
REFERENCES factura (factura_id)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE detalle_cotizacion ADD CONSTRAINT cotizacion_detalle_cotizacion_fk
FOREIGN KEY (cotizacion_id)
REFERENCES cotizacion (cotizacion_id)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
我在定义 JPA 实体时遇到问题。也持久化数据。
【问题讨论】:
-
欢迎来到堆栈溢出 :-) 你尝试了什么?
-
@JimHawkins 我尝试使用 Netbeans 生成的实体。但不起作用。
-
这是数据库脚本 CREATE TABLE vidrio ( id_vidrio INT AUTO_INCREMENT NOT NULL, grosor 双精度非空, largo 双精度非空, ancho 双精度非空, precio 双精度非空, 描述 VARCHAR (250 ) 非空,主键 (id_vidrio) );
-
Netbeans 不负责创建 bean,但它是您。不要在评论中发布相关信息,阅读起来很痛苦。请编辑问题,查看How to Ask 以及如何创建minimal reproducible example。