Entity primary keys are now forcibly sequence generated
This commit is contained in:
parent
87303d1ad7
commit
ca567b2e60
@ -11,6 +11,7 @@ import javax.persistence.JoinColumn
|
|||||||
import javax.persistence.JoinTable
|
import javax.persistence.JoinTable
|
||||||
import javax.persistence.ManyToMany
|
import javax.persistence.ManyToMany
|
||||||
import javax.persistence.ManyToOne
|
import javax.persistence.ManyToOne
|
||||||
|
import javax.persistence.SequenceGenerator
|
||||||
import javax.validation.constraints.Pattern
|
import javax.validation.constraints.Pattern
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@ -30,14 +31,20 @@ open class Member(
|
|||||||
inverseJoinColumns = [JoinColumn(name = "role_id", referencedColumnName = "id")]
|
inverseJoinColumns = [JoinColumn(name = "role_id", referencedColumnName = "id")]
|
||||||
)
|
)
|
||||||
open var roles: MutableSet<Role> = mutableSetOf(),
|
open var roles: MutableSet<Role> = mutableSetOf(),
|
||||||
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) open var id: Long = -1
|
@Id
|
||||||
|
@SequenceGenerator(name="member_id_seq", sequenceName = "member_id_seq", allocationSize = 1)
|
||||||
|
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "member_id_seq")
|
||||||
|
open var id: Long = -1
|
||||||
)
|
)
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
open class Role(
|
open class Role(
|
||||||
@Column(unique = true)
|
@Column(unique = true)
|
||||||
open var name: String = "",
|
open var name: String = "",
|
||||||
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) open var id: Long = -1
|
@Id
|
||||||
|
@SequenceGenerator(name="role_id_seq", sequenceName = "role_id_seq", allocationSize = 1)
|
||||||
|
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "role_id_seq")
|
||||||
|
open var id: Long = -1
|
||||||
)
|
)
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@ -54,7 +61,10 @@ open class Image(
|
|||||||
inverseJoinColumns = [JoinColumn(name = "tag_id", referencedColumnName = "id")]
|
inverseJoinColumns = [JoinColumn(name = "tag_id", referencedColumnName = "id")]
|
||||||
)
|
)
|
||||||
open var tags: MutableSet<Tag> = mutableSetOf(),
|
open var tags: MutableSet<Tag> = mutableSetOf(),
|
||||||
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) open var id: Long = -1
|
@Id
|
||||||
|
@SequenceGenerator(name="image_id_seq", sequenceName = "image_id_seq", allocationSize = 1)
|
||||||
|
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "image_id_seq")
|
||||||
|
open var id: Long = -1
|
||||||
)
|
)
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@ -62,5 +72,8 @@ open class Tag(
|
|||||||
@Column(unique = true)
|
@Column(unique = true)
|
||||||
@Pattern(regexp = "[a-zA-Z0-9_]*") // Only allow alphanumeric and underscores
|
@Pattern(regexp = "[a-zA-Z0-9_]*") // Only allow alphanumeric and underscores
|
||||||
open var tag: String = "",
|
open var tag: String = "",
|
||||||
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) open var id: Long = -1
|
@Id
|
||||||
|
@SequenceGenerator(name="tag_id_seq", sequenceName = "tag_id_seq", allocationSize = 1)
|
||||||
|
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tag_id_seq")
|
||||||
|
open var id: Long = -1
|
||||||
)
|
)
|
@ -1,19 +1,19 @@
|
|||||||
DROP SCHEMA IF EXISTS booru CASCADE ;
|
DROP SCHEMA IF EXISTS booru CASCADE;
|
||||||
|
|
||||||
CREATE SCHEMA booru;
|
CREATE SCHEMA booru;
|
||||||
|
|
||||||
CREATE TABLE booru.member
|
CREATE TABLE booru.member
|
||||||
(
|
(
|
||||||
id bigint NOT NULL PRIMARY KEY,
|
id bigserial NOT NULL PRIMARY KEY,
|
||||||
name varchar NOT NULL UNIQUE,
|
name varchar NOT NULL UNIQUE,
|
||||||
email varchar NOT NULL,
|
email varchar NOT NULL,
|
||||||
password varchar NOT NULL,
|
password varchar NOT NULL,
|
||||||
enabled boolean
|
enabled boolean NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE booru.image
|
CREATE TABLE booru.image
|
||||||
(
|
(
|
||||||
id bigint NOT NULL PRIMARY KEY,
|
id bigserial NOT NULL PRIMARY KEY,
|
||||||
filename varchar NOT NULL UNIQUE,
|
filename varchar NOT NULL UNIQUE,
|
||||||
uploader bigint NOT NULL,
|
uploader bigint NOT NULL,
|
||||||
CONSTRAINT uploader FOREIGN KEY (uploader) REFERENCES booru.member (id)
|
CONSTRAINT uploader FOREIGN KEY (uploader) REFERENCES booru.member (id)
|
||||||
@ -21,13 +21,13 @@ CREATE TABLE booru.image
|
|||||||
|
|
||||||
CREATE TABLE booru.role
|
CREATE TABLE booru.role
|
||||||
(
|
(
|
||||||
id bigint NOT NULL PRIMARY KEY,
|
id bigserial NOT NULL PRIMARY KEY,
|
||||||
name varchar NOT NULL
|
name varchar NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE booru.tag
|
CREATE TABLE booru.tag
|
||||||
(
|
(
|
||||||
id bigint NOT NULL PRIMARY KEY,
|
id bigserial NOT NULL PRIMARY KEY,
|
||||||
tag varchar NOT NULL UNIQUE
|
tag varchar NOT NULL UNIQUE
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -48,12 +48,17 @@ CREATE TABLE booru.member_roles
|
|||||||
CONSTRAINT member FOREIGN KEY (member_id) REFERENCES booru.member (id)
|
CONSTRAINT member FOREIGN KEY (member_id) REFERENCES booru.member (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE SEQUENCE IF NOT EXISTS booru.member_id_seq START WITH 1 INCREMENT BY 1;
|
||||||
|
CREATE SEQUENCE IF NOT EXISTS booru.image_id_seq START WITH 1 INCREMENT BY 1;
|
||||||
|
CREATE SEQUENCE IF NOT EXISTS booru.role_id_seq START WITH 1 INCREMENT BY 1;
|
||||||
|
CREATE SEQUENCE IF NOT EXISTS booru.tag_id_seq START WITH 1 INCREMENT BY 1;
|
||||||
|
|
||||||
-- Populate default values
|
-- Populate default values
|
||||||
INSERT INTO booru.role (id, name)
|
INSERT INTO booru.role (name)
|
||||||
VALUES (1, 'ADMIN'),
|
VALUES ('ADMIN'),
|
||||||
(2, 'USER');
|
('USER');
|
||||||
INSERT INTO booru.member (id, name, email, password, enabled)
|
INSERT INTO booru.member (name, email, password, enabled)
|
||||||
VALUES (1, 'root', 'root@example.org', '$2a$10$XiMxQ1Qe.AprOdJKUPum6O2URy2b4ogffujVZVpUT8CJPksfSyNZK', TRUE);
|
VALUES ('root', 'root@example.org', '$2a$10$XiMxQ1Qe.AprOdJKUPum6O2URy2b4ogffujVZVpUT8CJPksfSyNZK', TRUE);
|
||||||
INSERT INTO booru.member_roles (member_id, role_id)
|
INSERT INTO booru.member_roles (member_id, role_id)
|
||||||
VALUES (1, 1),
|
VALUES (1, 1),
|
||||||
(1, 2);
|
(1, 2);
|
@ -1,3 +1,3 @@
|
|||||||
spring.datasource.url=jdbc:h2:mem:testdb
|
spring.datasource.url=jdbc:h2:mem:testdb;MODE=PostgreSQL
|
||||||
spring.datasource.driverClassName=org.h2.Driver
|
spring.datasource.driverClassName=org.h2.Driver
|
||||||
images.directory=./images
|
images.directory=./images
|
Loading…
Reference in New Issue
Block a user