Конфигурация JPA для класса управляемой сущности в main_project выглядит следующим образом:
Код: Выделить всё
@Entity
public abstract class MainEntity {
@Id
@GeneratedValue(GenerationType=?)
@Column(name = "id")
private T id;
}
@Entity
public class Personnel extends MainEntity {
@Column(name = "firstName")
private String firstName;
// other proprties
}
Когда я использовал main_project в качестве зависимости в проекте A , класс сущности проекта A расширяет MainEntity и создает у него есть собственные классы сущностей и собственный файл конфигурации базы данных.
моя проблема связана с типом СУБД и GenerationType с id в main_project.
- 1) когда проект A использует базу данных Mysql, MainEntity должен есть:
Код: Выделить всё
@GeneratedValue(strategy = GenerationType.IDENTITY) - 2) когда проект A использует базу данных Oracle, MainEntity< /strong> должно быть:
Код: Выделить всё
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_generator")Код: Выделить всё
@SequenceGenerator(name="id_generator", sequenceName = "id_seq", allocationSize=1)
Я думаю, что мне нужно отразить Java-утилиту во время выполнения и добавить несколько аннотаций в зависимости от типа базы данных! это правда?
Я тоже прочитал this_post_19875993, но это не помогло.
this_post_30731627 объяснил, что мы можем выбрать один из пользовательских GenerationType[/b], но я хочу выбирать автоматически без каких-либо изменений в main_project, потому что A проект не может быть изменен MainEntity класса main_project и просто можете его использовать.
Подробнее здесь: https://stackoverflow.com/questions/508 ... erlying-da
Мобильная версия