У меня есть две таблицы в моей базе данных, в схеме "розничная торговля", с наборами отступов столбцов:
"vegetable_group":
+------------------+--------------------+
| (varchar) id | (varchar) value |
+------------------+--------------------+
| 1 | good_vegetables |
| 2 | bad_vegetables |
+------------------+--------------------+
"fruit_group":
+------------------+--------------------+
| (varchar) id | (varchar) value |
+------------------+--------------------+
| 3 | good_fruit |
| 4 | bad_fruit |
+------------------+--------------------+
также у меня есть enum в типе базы данных product_type как enum ('fruit', 'vegetable');
это моя сущность:
@Data
@Entity
@Table(schema = "retail", name = "vegetable_group")
@SecondaryTables({
@SecondaryTable(schema = "retail", name = "fruit_group",
pkJoinColumns = @PrimaryKeyJoinColumn(name = "id", referencedColumnName = "id")
)
})
public class Product implements Serializable {
private enum ProductType {
vegetable, fruit
}
@Id
@Column(name = "id")
private String id;
@Enumerated(EnumType.STRING)
ProductType productType;
@Column(name = "value")
private String value;
}
и простой ProductRepository
public interface ProductRepository extends JpaRepository<Product, String> {
}
Мне нужно как-то установить значение product.productType в зависимости от таблицы, от объединенных данных ...
Можно ли как-нибудь просто сделать это?
Upd.
Я использую @SecondaryTable, потому что мне нужно получать данные из двух таблиц, используя одну сущность.Например, у меня есть Продукт с идентификатором 99. Я не знаю, овощ это или фрукт.Общий подход к такому процессу заключается в создании двух объектов: фруктов и овощей и их поиске по идентификаторам.Но структуру базы данных нельзя изменить, поэтому я использую один объект Product, который получает данные из обеих таблиц по уникальному идентификатору.