Skip to content

Commit

Permalink
Merge pull request #696 from cschabl/rework-has-many
Browse files Browse the repository at this point in the history
#664 Add @OneToMany annotation as alternative to @BelongsTo (create-table statements for other DBs)
  • Loading branch information
Igor Polevoy committed Mar 14, 2018
2 parents 669bc0b + a3f359f commit 27d8a11
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 0 deletions.
5 changes: 5 additions & 0 deletions activejdbc/src/test/resources/db2_schema.sql
Expand Up @@ -191,3 +191,8 @@ CREATE TABLE boxes (id int primary key GENERATED ALWAYS AS IDENTITY, "color" VAR
CALL dropTable('passengers');
CREATE TABLE passengers (id int primary key GENERATED ALWAYS AS IDENTITY, user_id INT NOT NULL, vehicle VARCHAR(10),mode VARCHAR(10));

CALL dropTable('teams');
CREATE TABLE teams (team_id int primary key GENERATED ALWAYS AS IDENTITY, name VARCHAR(56) NOT NULL);

CALL dropTable('players');
CREATE TABLE players (id int primary key GENERATED ALWAYS AS IDENTITY, first_name VARCHAR(56) NOT NULL, last_name VARCHAR(56) NOT NULL, team_id INT);
11 changes: 11 additions & 0 deletions activejdbc/src/test/resources/mssql_schema.sql
Expand Up @@ -408,3 +408,14 @@ BEGIN
END
CREATE TABLE passengers (id INT IDENTITY PRIMARY KEY, user_id INT NOT NULL, vehicle VARCHAR(10), mode VARCHAR(10));

IF object_id('dbo.teams') IS NOT NULL
BEGIN
DROP TABLE [dbo].[teams]
END
CREATE TABLE teams (team_id INT IDENTITY PRIMARY KEY, name VARCHAR(56) NOT NULL);

IF object_id('dbo.players') IS NOT NULL
BEGIN
DROP TABLE [dbo].[players]
END
CREATE TABLE players (id INT IDENTITY PRIMARY KEY, first_name VARCHAR(56) NOT NULL, last_name VARCHAR(56) NOT NULL, team_id INT);
6 changes: 6 additions & 0 deletions activejdbc/src/test/resources/mysql_schema.sql
Expand Up @@ -206,3 +206,9 @@ CREATE TABLE boxes (id int(11) NOT NULL auto_increment PRIMARY KEY, color VARCH

DROP TABLE IF EXISTS passengers;
CREATE TABLE passengers (id int(11) NOT NULL auto_increment PRIMARY KEY, user_id INT(11) NOT NULL, vehicle VARCHAR(10), mode VARCHAR(10), created_at DATETIME, updated_at DATETIME) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS teams;
CREATE TABLE teams (team_id int(11) NOT NULL auto_increment PRIMARY KEY, name VARCHAR(56) NOT NULL);

DROP TABLE IF EXISTS players;
CREATE TABLE players (id int(11) NOT NULL auto_increment PRIMARY KEY, first_name VARCHAR(56) NOT NULL, last_name VARCHAR(56) NOT NULL, team_id int(11));
36 changes: 36 additions & 0 deletions activejdbc/src/test/resources/oracle_schema.sql
Expand Up @@ -1102,3 +1102,39 @@ CREATE OR REPLACE TRIGGER passengers_trigger
select coalesce(:new.id, passengers_seq.nextval) into :new.id from dual;
end;
-- BREAK


CREATE TABLE teams (team_id NUMBER NOT NULL, name VARCHAR(56) NOT NULL)
-- BREAK
ALTER TABLE teams ADD CONSTRAINT teams_pk PRIMARY KEY (team_id)
-- BREAK
CREATE SEQUENCE teams_seq START WITH 1 INCREMENT BY 1
-- BREAK
CREATE OR REPLACE TRIGGER teams_trigger
BEFORE INSERT ON teams REFERENCING
NEW AS new
OLD AS old
FOR EACH ROW
begin
select coalesce(:new.team_id, teams_seq.nextval) into :new.team_id from dual;
end;
-- BREAK


CREATE TABLE players (id NUMBER NOT NULL, first_name VARCHAR(56) NOT NULL, last_name VARCHAR(56) NOT NULL, team_id NUMBER)
-- BREAK
ALTER TABLE players ADD CONSTRAINT players_pk PRIMARY KEY (id)
-- BREAK
CREATE SEQUENCE players_seq START WITH 1 INCREMENT BY 1
-- BREAK
CREATE OR REPLACE TRIGGER players_trigger
BEFORE INSERT ON players REFERENCING
NEW AS new
OLD AS old
FOR EACH ROW
begin
select coalesce(:new.id, players_seq.nextval) into :new.id from dual;
end;
-- BREAK


7 changes: 7 additions & 0 deletions activejdbc/src/test/resources/postgres_schema.sql
Expand Up @@ -205,3 +205,10 @@ CREATE TABLE boxes (id serial PRIMARY KEY, "color" VARCHAR(56) NOT NULL, fruit_i
DROP TABLE IF EXISTS passengers;
CREATE TABLE passengers (id serial PRIMARY KEY, "vehicle" VARCHAR(56),"mode" VARCHAR(56), user_id INT);

DROP TABLE IF EXISTS teams;
CREATE TABLE teams (team_id serial PRIMARY KEY, name VARCHAR(56) NOT NULL);

DROP TABLE IF EXISTS players;
CREATE TABLE players (id serial PRIMARY KEY, first_name VARCHAR(56) NOT NULL, last_name VARCHAR(56) NOT NULL, team_id INT);


0 comments on commit 27d8a11

Please sign in to comment.