Исходя из моего понимания и опыта работы с JPA, невозможно получить лучшее из обоих миров с этой проблемой.JPA опирается на аннотации непосредственно внутри файла.На мой взгляд, лучшая альтернатива - создать два отдельных файла .java для каждого.Это не очень хорошее решение, но я не думаю, что вы получите что-то лучше.
ex: Файл # 1 DemoAnnotated.java
@Entity
@IdClass(DemoId.class)
@Table(name = "demo",catalog="demodb")
public class Demo implements Serializable{
@Id
private long pk1;
@Id
private long pk2;
@Id
private long pk3;
@Lob
String description;
@ElementCollection(targetClass=String.class)
List<String> infos = new ArrayList<>();
}
Файл # 2 Demo.java
public class Demo implements Serializable{
private long pk1;
private long pk2;
private long pk3;
String description;
List<String> infos = new ArrayList<>();
}
Вы, вероятно, сэкономите время в долгосрочной перспективе, чтобы просто оставить аннотации на данный момент.Если вам нужно позже быстро переключаться между фреймворками - это потребует рефакторинга, но вы должны быть в состоянии сделать это довольно быстро.Я не могу представить, чтобы изменения были слишком интенсивными.Это может быть просто @Entity -> @SomeOtherName, в этом случае вы можете выполнять поиск и замену.Поиск и замена может быть вашим спасителем здесь.