도메인에서 불변이 데이터베이스에서 불변이어야 함을 의미합니까? 예를 들어 고객에게 항상 하나의 주소가 있다고 가정하면 다음을 고려하십시오.
customer.address = new Address('My Castle', 'Kings street');
customer_repo.save(customer);
이제 고객 ID가 1임을 고려하여 다음 SQL이 실행됩니다.
INSERT INTO addresses (customer_id, name, street)
VALUES (1, 'My Castle', 'Kings street');
이제 주소가 다음과 같이 변경되었습니다.
customer.address = new Address('Pauper palace', 'Outlands');
customer_repo.save(customer);
영속 계층은 다음과 같은 SQL을 실행합니다.
UPDATE addresses SET name='Pauper palance', street='Outlands'
WHERE customer_id = 1;
이렇게하면 별도의 DELETE AND INSERT 문의 오버 헤드를 피할 수 있습니다. 또한 일부 RDBMS에는 INSERT REPLACE 또는 무언가가 있다고 생각합니다. MySql에는 REPLACE가 있습니다.