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)
Robert Szczygielski Dice Dev. Polityka Prywatności i Regulamin Szkoleń Online
Strona www stworzona w kreatorze WebWave.