Tabelka wygenerowana przez Hibernate ma jeden Bardzo Istotny Problem (zachęcam do sprawdzenia):

- występuje tylko jeden klucz główny - rooms_id - uniemożliwia to zapis większej ilości pokoi z tym samym Id

- w ramach "Doskonalenia programistycznego" możesz spróbować napisać test integracyjny, który sprawdzi taki zapis i potwierdzi błąd

 

Changeset liquibase:

id: 012-property-room-association-table

tableName: property_room_associations

    column:

    name: property_id

    type: uuid

    constraints:

        primatyKey: true

 

    name: room_id

    type:uuid

    constraints:

        primatyKey: true

 

  name: rent

  type: boolean

 

- addForetinKeyConstraint:

    constraintName: FK_ROOM_ID_FEF

    baseTableName: property_room_associations

    baseColumnNames: room_id

    referencedTableName: rooms

    referendedColumnNames: id

 

- addForetinKeyConstraint:

    constraintName: FK_PROPERTY_ID_FEF

    baseTableName: property_room_associations

    baseColumnNames: property_id

    referencedTableName: property

    referendedColumnNames: id

 

- addDefaultValue:

    tableName: property_room_associations

    columnName: rent

    defaultValueBoolean: false

 

 

HINT: klasa encji może wymagać implementacji interfejsu: Serializable

 

HINT: klasa encji może wymagać adnotacji @IdClass(PropertyRoomAssociationsEntity.class)

 

29 Nowy Epik - Wynajem Pokoju - I

02 marca 2024

Robert Szczygielski Dice Dev. Polityka Prywatności i Regulamin Szkoleń Online

Strona www stworzona w kreatorze WebWave.