В настоящее время я создаю приложение Spring Boot, используя Hibernate, и это наследование сущностей, как показано в следующей таблице
Account
/ \
Admin AdvancedAccount
/ \
Type1 Type2
Класс учетной записи:
@Entity
@Table(name = "accounts")
@Inheritance(strategy = InheritanceType.JOINED)
public class Account {
// attributes and methods
}
Класс администратора:
@Entity
@Table(name = "admins")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name = "id")
public class Admin extends Account {
// attributes and methods
}
Класс AdvancedAccount:
@Entity
@Table(name = "advanced_accounts")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name = "id")
public class AdvancedAccount extends Account {
// attributes and methods
}
Класс Type1:
@Entity
@Table(name = "type1s")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name = "id")
public class Type1 extends AdvancedAccount {
// attributes and methods
}
Класс Type2:
@Entity
@Table(name = "type2s")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name = "id")
public class Type2 extends AdvancedAccount {
// attributes and methods
}
Я полностью осознаю, что однажды, используя InheritanceType.JOINED
, Hibernate будет выполнять запросы таблиц соединений к запросам, которые включают в себя любую из этих таблиц.
То, что я пытаюсь спросить здесь, - это любой способ, которым я могу заставить Hibernate не присоединять все унаследованные таблицы к запросу в некоторых Speci c Scenar ios?
Спасибо, ребята!