Springboot JPA自动配置@Entity名称属性

时间:2018-11-15 08:24:44

标签: java spring spring-boot spring-data-jpa

我有2个类,对于我的业务逻辑,我使用的是不同的程序包,但具有相同的类名。

让我说:

软件包:

com.mycompany.myview1.entities

@Entity
public class MyClass {
  ...
  ...fields...
}

软件包:

com.mycompany.myview2.entities

@Entity
public class MyClass {
  ...
  ...fields...
}

它们代表数据库的不同视图,然后具有不同的字段。

因此,当我有两个不同的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时,其中之一会被覆盖。

  1. 这是真的吗?

我发现可以避免这种情况的解决方案是添加@Entity(name="myView1MyClass")@Entity(name="MyView2MyClass")

问题是我将要拥有几个这样的实体,它们会成长很多,并且我想使这一过程自动化。

我理想的(不起作用)解决方案是这样的:

@Entity(name=this.getClass().getName()),但是正如我在互联网上发现的那样,注释只能接收最终常量。

  1. Jpa / Springboot是否向我提供任何解决方案来自动化此过程?

0 个答案:

没有答案