означает, что мне нужно проследить исходную таблицу, аналогичную протоколированию таблицы со значениями и выполненными операциями
У меня есть сущность
@Id
@GeneratedValue
private Long _id;
private String description;
private BigDecimal price;
private String imageUrl;
Поэтому, независимо от того, какие операции, такие как добавление, изменяются, должны храниться в таблице журналов со значениями.
Направьте меня, чтобы достичь этого в весеннем ботинке.
Вы можете использовать Spring JPA Auditing для решения этой проблемы.
Основной класс сущностей:
@Entity @EntityListeners(MyEntityListener.class)
public class MyEntity {
@Id
@GeneratedValue
private Long _id;
private String description;
private BigDecimal price;
private String imageUrl;
// Getter Setter
}
Аудиторский класс слушателя:
@Component
public class MyEntityListener {
@Autowired
private LogEntryRepositoy logEntryRepositoy;
@PrePersist
@PreUpdate
@PreRemove
private void beforeAnyOperation(MyEntity myEntity) {
LogEntry entry = new LogEntry();
//Your custom logic
logEntryRepositoy.save(entry);
}
}
Ваш объект журнала:
@Entity
public class LogEntry {
@Id
@GeneratedValue
private Long _id;
private String operation;
//Add other properties
}
Ваш репозиторий журналов
@Repository
public interface LogEntryRepositoy extends JpaRepository<LogEntry, Long> {
}
Класс загрузки Spring:
@SpringBootApplication
@EnableJpaRepositories(considerNestedRepositories = true)
@EnableJpaAuditing
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
для дальнейшего чтения следуйте этой ссылке
Если вы используете любую другую базу данных, отличную от h2, настройте ее в свойствах приложения.
Например, если вы используете MySQL:spring.jpa.database=mysql
spring.datasource.url=jdbc:mysql://localhost:3306/_your_data_name
spring.datasource.username=your_user_name
spring.datasource.password=your_password
И зависимость MySQL в pom.xml:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>