Popular
- Get link
- X
- Other Apps
Trong Hibernate (và trong các hệ thống quản lý cơ sở dữ liệu nói chung), chúng ta có thể cấu hình các khóa chính theo hai cách: sử dụng một khóa chính đơn (single primary key) hoặc sử dụng nhiều khóa chính (composite key hoặc multiple primary keys). Chúng ta sẽ đi qua từng cách trong bài này
1. Single primary key
Khóa chính đơn là một thuộc tính duy nhất trong một bảng được sử dụng để định danh duy nhất mỗi bản ghi. Đây là cách phổ biến và đơn giản nhất để định nghĩa khóa chính.
Dưới đây là cấu trúc bảng dữ liệu cho Single primary key
Một khóa chính bao gồm nhiều cột (thuộc tính) được gọi là khóa chính phức hợp (composite key). Trong Hibernate, có hai cách chính để cấu hình composite keys:
DROP DATABASE IF EXISTS ThachPhamDevDb;
-- Create database
CREATE DATABASE IF NOT EXISTS ThachPhamDevDb;
USE ThachPhamDevDb;
-- Create table Group
DROP TABLE IF EXISTS `Order`;
CREATE TABLE IF NOT EXISTS `Order` (
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title NVARCHAR(50) NOT NULL UNIQUE KEY
);
-- INSERT DATA
USE ThachPhamDevDb;
INSERT INTO `Order` (title)
VALUE ('Order 1'),
('Order 2'),
('Order 3');
USE ThachPhamDevDb;
Select * from `Order`;
1. Multiple primary key
Một khóa chính bao gồm nhiều cột (thuộc tính) được gọi là khóa chính phức hợp (composite key). Trong Hibernate, có hai cách chính để cấu hình composite keys:
- Sử dụng @IdClass Annotation
- Sử dụng @EmbeddedId Annotation
- Sử dụng @EmbeddedId Annotation
Cấu trúc bảng dữ liệu cho Multiple primary key
DROP DATABASE IF EXISTS ThachPhamDevDb;
-- Create database
CREATE DATABASE IF NOT EXISTS ThachPhamDevDb;
USE ThachPhamDevDb;
-- Create table Group
DROP TABLE IF EXISTS `Order`;
CREATE TABLE IF NOT EXISTS `Order` (
order_id SMALLINT UNSIGNED NOT NULL,
product_id SMALLINT UNSIGNED NOT NULL,
title NVARCHAR(50) NOT NULL UNIQUE KEY,
PRIMARY KEY (order_id, product_id)
);
-- INSERT DATA
USE ThachPhamDevDb;
INSERT INTO `Order` (order_id, product_id, title)
VALUE (1, 1, 'Order 1'),
(1, 2, 'Order 2'),
(2, 3, 'Order 3');
USE ThachPhamDevDb;
Select * from `Order`;
Để hiểu thêm chi tiết mời các bạn xem video bên dưới:
- Get link
- X
- Other Apps
Comments
Post a Comment