OneToMany Beziehung in CreateTable mit PostgreSQL erstellen

txangel

Benutzer
Beiträge
6
Hi,


Ich versuche in PostgreSQL eine Tabelle zu erstellen mit einer Column, die eine @OneToMany Beziehung hat. Also

Code:
@Table (name = "HOUSES")
public class House {


    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column
    private String name;

    ...
   
    @OneToMany
    private List<Room> rooms = new ArrayList<>();
   
}


und in Postgres krieg ich die Beziehung nicht hin. Kann jmd helfen? Das hab ich schon mal versucht:

SQL:
CREATE TABLE houses (
      id int GENERATED ALWAYS AS IDENTITY,
      name VARCHAR(255),

      CONSTRAINT fk_room FOREIGN KEY(room_id) REFERENCES rooms(id)
);

CREATE TABLE rooms (
       id int GENERATED ALWAYS AS IDENTITY,
       name VARCHAR(255),
       description VARCHAR(255)
);


Vielen Dank
 
Werbung:
Code:
postgres=# CREATE TABLE houses (
      id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
      name VARCHAR(255)
);
CREATE TABLE
postgres=# CREATE TABLE rooms (
       id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
       name VARCHAR(255),
       description VARCHAR(255)
);
CREATE TABLE
postgres=# create table house_rooms (id_house int references houses, id_room int references rooms, primary key(id_house, id_room));
CREATE TABLE

hilft das?
 
Vielen Dank. Stimmt, das müsste eine n-zu-m-Beziehung sein und benötigt deshalb eine eigene Tabelle.
Damit hat es geklappt:
SQL:
CREATE TABLE houses_rooms (

         house_id int references houses,

         rooms_id int references rooms,

         primary key(house_id, rooms_id)

);
Ohne das "s" bei rooms_id hat er gemeckert.

Danke!!
 
Werbung:
Zurück
Oben