Java 添加外键(Lquidbase)
我正在尝试添加一个外键,该外键将引用另一个表中的主键,并且主键将位于列user_id中,但由于某些原因,我遇到语法异常Java 添加外键(Lquidbase),java,database,Java,Database,我正在尝试添加一个外键,该外键将引用另一个表中的主键,并且主键将位于列user_id中,但由于某些原因,我遇到语法异常 <changeSet id="add-export_users-table" author="artjom.prozorov"> <preConditions> <not> <tableExists tableName="export_users"/> </n
<changeSet id="add-export_users-table" author="artjom.prozorov">
<preConditions>
<not>
<tableExists tableName="export_users"/>
</not>
</preConditions>
<createSequence sequenceName="export_users_id_seq"/>
<createTable tableName="export_users">
<column name="id" type="BIGINT"/>
<column name="user_id"/>
</createTable>
<addNotNullConstraint tableName="export_users" columnName="id"/>
<addPrimaryKey tableName="export_users" columnNames="id"/>
<addForeignKeyConstraint baseTableName="export_users" baseColumnNames="user_id" constraintName="export_users_fk"
referencedTableName="users"
referencedColumnNames="user_id"/>
Export class
@OneToOne
@JoinColumn(name = "user_id")
private UserEntity userEntity;
UserEntity class
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_id_seq")
@SequenceGenerator(name = "user_id_seq", sequenceName = "public.user_id_seq", allocationSize = 0)
private Long id;
出口类
@奥内托内
@JoinColumn(name=“user\u id”)
私有用户实体用户实体;
用户实体类
@身份证
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“用户id_seq”)
@SequenceGenerator(name=“user\u id\u seq”,sequenceName=“public.user\u id\u seq”,allocationSize=0)
私人长id;
假设
users
表的ID是user\u ID
,但由于我在你的UserEntity@ID
上没有看到任何注释,我假设它的ID相当简单地称为ID
,我很确定列类型是mandatory啊,你说得对,我在那里是瞎的,谢谢你的帮助,非常感谢
<addForeignKeyConstraint baseTableName="export_users"
baseColumnNames="user_id"
constraintName="export_users_fk"
referencedTableName="users"
referencedColumnNames="user_id"/>