2016-04-21 3 views
0

У меня есть сущность:LiquiBase - Spring Data: OneToOne отношения к себе сущности не работает

@Entity 
@Table(name = "society") 
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
public class Society implements Serializable { 

    private static final long serialVersionUID = 1L; 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @NotNull 
    @Column(name = "name", nullable = false) 
    private String name; 

Я хотел бы добавить ссылку на себя, что-то вроде:

@OneToOne 
private Society parentSociety 

Когда Я запускаю liquibase:diff, Liquibase не замечает изменения и не создает файл изменений для этого нового атрибута моего объекта.

Как я могу сделать эту работу?

+0

Как вы используете Liquibase: diff, используете ли вы расширение libibase-hibernate? – dbf

+0

Я просто бегущая жидкость: diff от Maven. Я не знаю о расширении липибазы-спящего режима – user1260928

ответ

0

Команда liquidibase: diff генерирует разницу между двумя указанными базами данных. Вы можете настроить для создания diff между базой данных и сущностями, но сначала вам нужно настроить pom.xml и linibase.properties. Для конфигурации pom вам понадобится зависимость от Liquibase-hibernate. Я рекомендую вам читать этот учебник, его очень просто и произведение:

http://www.baeldung.com/liquibase-refactor-schema-of-java-app

При изменении одного объекта и запустить LiquiBase: команда дифф не remmember рабочего процесса LiquiBase:

Изменить ваш JPA-объект (добавьте поле, отношения и т. д.) Компилируйте свое приложение (это работает на скомпилированном Java-коде, поэтому не забудьте скомпилировать!) Запустите mvn liquidibase: diff (или mvn compile liquidibase: diff для компиляции до) В вашем каталоге src/main/resources/config/liquidibase/changelog создается новый журнал изменений. Просмотрите этот журнал изменений и добавьте его в свой src/main/resour ces/config/liquidibase/master.xml, поэтому он применяется при следующем запуске приложения. Если вы используете Gradle вместо Maven, вы можете использовать тот же рабочий процесс, запустив ./gradlew liquidibaseDiffChangelog и изменив конфигурацию базы данных в Liquibase .gradle, если требуется.

Таким образом, если вы используете Maven после изменения класса Entity вам нужно собрать еще раз ... просто выполнить: чистую установку, после этого вы можете выполнить LiquiBase: Diff для генерации набора изменений в вас LiquiBase-дифф .xml-файл

Смежные вопросы