I
have seen several related questions and their answers, but it is not
helping my case.
I
have a Spring boot application, where I have created entities using
Jhipster, plus I have added some manual changelog changesets myself.
I
have a Doctor entity, which contains a One-to-Many uni-directional
relationship with 'Specialty' where 'Doctor' is the
owner of the relationship. So I specified a Join table that will
store Doctor and Specialty foreign keys.
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
name="T_DOCTOR_SPECIALTY",
joinColumns = @JoinColumn( name="doctor_id"),
inverseJoinColumns = @JoinColumn( name="specialty_id")
)
private List<Specialty> specialties = new ArrayList<>();
For
this, I added a changelog file, that even contains the tag to ignore
specialty if it already exists,
<changeSet id="20150415081455" author="waqas">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="T_DOCTOR_SPECIALTY"/>
</not>
</preConditions>
</changeSet>
<changeSet id="20150415081221" author="waqas">
<createTable tableName="T_DOCTOR_SPECIALTY">
...
Then,
I create a new database with no tables and run the application, but
I get the following exception:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 't_doctor_specialty' already exists
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_40]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:...