【发布时间】:2021-12-02 20:20:06
【问题描述】:
我有两个实体(给你简化版本):
<createTable tableName="wallet_information"
remarks="A table to contain wallet data">
<column name="id" type="bigint(20)" autoIncrement="true">
<constraints nullable="false" primaryKey="true"/>
</column>
<column name="user_uuid" type="varchar(255)">
<constraints nullable="false"/>
</column>
<column name="wallet_name" type="varchar(255)">
<constraints nullable="false"/>
</column>
<column name="wallet_address" type="varchar(63)">
<constraints nullable="false"/>
</column>
<column name="verification_challenge_id" type="bigint(20)">
<constraints nullable="true"/>
</column>
</createTable>
还有:
<createTable tableName="verification_challenge"
remarks="A table to contain challenge data">
<column name="id" type="bigint(20)" autoIncrement="true">
<constraints nullable="false" primaryKey="true"/>
</column>
<column name="challenge_type" type="varchar(255)">
<constraints nullable="false"/>
</column>
</createTable>
最后:
<addForeignKeyConstraint baseTableName="wallet_information"
baseColumnNames="verification_challenge_id"
constraintName="verification_challenge_fk"
referencedTableName="verification_challenge"
referencedColumnNames="id"
onDelete="CASCADE"/>
然后我使用 Hibernate 在这些表中保存一些数据。
目前我没有从代码的角度从这些表中删除任何数据,但是当我手动删除 wallet_information 中的条目时,verification_challenge 中引用的条目并不会随之删除。
但是当我删除verification_challenge 中的条目时,wallet_information 中引用的条目被删除。
我认为onDelete="CASCADE" 的行为会完全相反...
我做错了什么?
【问题讨论】:
标签: java mysql hibernate foreign-keys liquibase