我有一個PostgreSQL表Grails領域約束映射到PostgreSQL吉斯特約束
CREATE TABLE reservation_table (
idreservation SERIAL NOT NULL,
entry_datetime TIMESTAMPTZ NOT NULL DEFAULT 'NOW',
start_end_dates DATERANGE NOT NULL ,
property_id INT NOT NULL REFERENCES property_table,
...
)
和約束,以防止2只保留了相同的屬性上同日
ALTER TABLE ONLY reservation_table
ADD CONSTRAINT reservation_double_booking_constraint
EXCLUDE USING gist
(property_id WITH =, start_end_dates WITH &&)
;
我能執行我的SQL約束在我的Grails Reservation域中?
我正在考慮使用視圖,以避免在常規
create view resView as
select idReservation,
lower(start_end_dates) AS startDate,
upper(start_end_dates) AS endDate,
property_id
from reservation_table
你的意思是你想要將視圖映射到你的域而不是表? – danielad 2014-10-04 11:30:24
我想要一個簡單,易於維護的域。範圍類型尚未得到完全支持 - 因此,使用具有開始日期和結束日期的視圖簡化了我的Grails代碼,同時允許我的數據庫約束來防止通過另一個應用程序輸入的雙重預訂公寓。這是我的第一個Web應用程序,所以我仍然在學習hibernate/grails約束是否可以執行。我希望有人能夠指向我在grails/hibernate中的GIST樣式約束機制 - 但我還沒有找到。 – 2014-10-05 11:38:35