小编Sad*_*ath的帖子

当存在两个或多个具有相同名称的实体时,选择默认实体 - Spring Boot,Spring Data JPA,

我正在使用spring数据jpa来实现持久性.如果存在多个具有相同名称的实体,是否有一种方法可以将一个实体标记为默认值.类似@Primary注释的东西用于解决多个bean依赖问题

@Entity(name = "ORGANIZATION")
@Table(name = "ORGANIZATION")
public class DefaultOrganization {
     ***
}

@Entity(name = "ORGANIZATION")
@Table(name = "ORGANIZATION")
public class Organization {
     ***
}
Run Code Online (Sandbox Code Playgroud)

更新

让我说清楚一点.我正在使用spring-boot @EntityScan注释执行包扫描,如果在两个不同的包中找到两个具有相同名称的实体,则应该有一种方式,其中只有一个实体被选中和注册而另一个被拒绝.就实体名称而言,即使我知道没有两个实体可以具有相同的名称.我在spring-boot和spring-data-jpa的上下文中问这个问题

@Entity(name = "ORGANIZATION")
@Table(name = "ORGANIZATION")
@PrimaryEntity
public class DefaultOrganization {
     ***
}

@Entity(name = "ORGANIZATION")
@Table(name = "ORGANIZATION")
public class Organization {
     ***
}
Run Code Online (Sandbox Code Playgroud)

由于DefaultOrganization标有@PrimaryEntity,因此应该通过@EntityScan选择DefaultOrganization,而应拒绝组织.

注意: @PrimaryEntity是非JPA标准自定义注释,可由spring-boot @EntityScan处理

spring hibernate jpa spring-data-jpa spring-boot

1
推荐指数
1
解决办法
2019
查看次数

标签 统计

hibernate ×1

jpa ×1

spring ×1

spring-boot ×1

spring-data-jpa ×1