gpt4 book ai didi

nhibernate - NHibernate映射未在外键引用中添加ON DELETE CASCADE选项

转载 作者:行者123 更新时间:2023-12-04 13:29:23 25 4
gpt4 key购买 nike

这是我的NHibernate映射。

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="HelloNHibernate" namespace="HelloNHibernate">
<class name="Showing" table="showing">
<id name="Id" column="showing_id">
<generator class="identity"/>
</id>
<many-to-one class="Theater" name="Theater" column="theater_id" foreign-key="fk_showing_theater_theater_id" cascade="delete" lazy="false" fetch="join"/>
<many-to-one class="Movie" name="Movie" column="movie_id" foreign-key="fk_showing_movie_movie_id" cascade="delete" lazy="false" fetch="join" />
</class>
</hibernate-mapping>

这是SchemaExport工具生成的SQL(PostgreSQL):
CREATE TABLE showing
(
showing_id serial NOT NULL,
theater_id integer,
movie_id integer,
CONSTRAINT showing_pkey PRIMARY KEY (showing_id),
CONSTRAINT fk_showing_movie_movie_id FOREIGN KEY (movie_id)
REFERENCES movie (movie_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_showing_theater_theater_id FOREIGN KEY (theater_id)
REFERENCES theater (theater_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)

我究竟做错了什么?谢谢!

最佳答案

NHibernate只能在逆集合上生成on delete cascade约束。

您的域的示例:

<class name="Movie">
...
<bag name="Showings" inverse="true" cascade="all">
<key column="Foo" on-delete="cascade" /><!--Here's the magic-->
<one-to-many class="Showing" />
</bag>
</class>

关于nhibernate - NHibernate映射未在外键引用中添加ON DELETE CASCADE选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4468571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com