У меня есть 2 класса, которые для моей бизнес-логики у меня в разных пакетах, но с одинаковым именем класса.
Допустим, у меня есть:
пакет:
com.mycompany.myview1.entities
@Entity
public class MyClass {
...
...fields...
}
пакет:
com.mycompany.myview2.entities
@Entity
public class MyClass {
...
...fields...
}
Они представляют разные виды базы данных, с разными полями.
Итак, когда у меня есть 2 разных JpaRepositories
, в обоих случаях мои занятия расширяются MyClass
:
com.mycompany.myview1.entities
@Repository
public interface MyClassRepository extends JpaRepository<MyClass, Long> { } //MyClass here is from package myview1.
com.mycompany.myview2.entities
@Repository
public interface MyClassRepository extends JpaRepository<MyClass, Long> { } //MyClass here is from package myview2.
Я понял, что когда вы определяете 2 @Entities
с тем же именем класса, один из них переопределяется.
- Это правда?
Решение, которое я нашел, работает, чтобы избежать, это добавить @Entity(name="myView1MyClass")
и @Entity(name="MyView2MyClass")
.
Проблема в том, что у меня будет несколько таких сущностей, которые сильно вырастут, и я бы хотел автоматизировать этот процесс.
Моим идеальным ( не работающим ) решением было бы что-то вроде:
@Entity(name=this.getClass().getName())
, но, как я обнаружил в Интернете, аннотации могут получать только конечные константы.
- Предоставляет ли Jpa / Springboot какое-либо решение для автоматизации этого процесса?