Как лучше всего установить связи между Entity в проекте финансового приложения, где есть User, Chapter, Category и Operation?
Для того чтобы правильно настроить связи между сущностями в Java Spring, необходимо использовать аннотации сущностей (Entity) и указать тип связи (One-to-One, One-to-Many, Many-to-One, Many-to-Many) с помощью аннотаций ORM (Object-Relational Mapping), таких как @OneToOne, @OneToMany, @ManyToOne, @ManyToMany. В случае проекта финансового приложения с сущностями User, Chapter, Category и Operation, можно настроить связи следующим образом: 1. User и Operation: - User может иметь много операций (One-to-Many). Для этого нужно добавить поле List<Operation> в сущность User и аннотацию @OneToMany к данному полю. Пример: ```java @Entity public class User { @Id private Long id; @OneToMany(mappedBy = "user") private List<Operation> operations; // остальные поля и методы } ``` 2. Chapter и Category: - Каждая категория (Category) может иметь много глав (Chapter) (One-to-Many). Для этого нужно добавить поле List<Chapter> в сущность Category и аннотацию @OneToMany к данному полю. Пример: ```java @Entity public class Category { @Id private Long id; @OneToMany(mappedBy = "category") private List<Chapter> chapters; // остальные поля и методы } ``` 3. Operation и Chapter: - Каждая операция (Operation) может быть совершена в рамках определенной главы (Chapter) (Many-to-One). Для этого нужно добавить поле Chapter в сущность Operation и аннотацию @ManyToOne к данному полю. Пример: ```java @Entity public class Operation { @Id private Long id; @ManyToOne private Chapter chapter; // остальные поля и методы } ``` Таким образом, установив правильные связи между сущностями, вы сможете эффективно организовать данные в вашем финансовом приложении и управлять ими с помощью Java Spring.
Добрый день.
С одной стороны, использование ORM фреймворков упрощает разработку. Но я замечал, что некоторые разработчики работая в рамках ORM напрочь не изучают SQL и конечно же это плохо.
Hibernate хорош с тем, что упрощает разработку, но иногда его необдуманное применение может привести к проблемам. Например, каскады. Честно говоря, работать с jdbc template, тоже не то. Я бы выбрал бы jooq.
Кстати, если у вас есть операция с балансом, то надеюсь, что вы используете BigDecimal, а не double или float. Если что погуглите Bigdecimal vs double high precision
Chapter - крупный раздел, например "Жилье", которое содержит категории.
Category - соответственно сами категории, продолжая пример - "Свет", "Газ", "Вода".
В терминологии ВП, chapter - taxonomy, а категория остается как есть.
Я бы рекомендовал прочитать статьи в блоге Влада Михалки. https://vladmihalcea.com/
А еще у него в гите есть примеры на relation-ы. Вдруг, тоже будет полезно
https://github.com/vladmihalcea/high-performance-j...