当前位置: 首页 > 知识库问答 >
问题:

在spring boot中从单个实体创建两个表

秋飞鸾
2023-03-14

意味着我需要跟踪原始表,类似于用值和已经进行的操作记录表

 @Id
    @GeneratedValue
    private Long _id;
    private String description;
    private BigDecimal price;
    private String imageUrl;

指导我在春靴中实现这一点。

共有1个答案

萧鹏云
2023-03-14

您可以使用Spring JPA审计来解决这个问题。

主实体类:

@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> {

}
@SpringBootApplication
@EnableJpaRepositories(considerNestedRepositories = true)
@EnableJpaAuditing
public class Application{
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

如果您使用的是h2以外的任何其他数据库,请在应用程序属性中进行配置。

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>
 类似资料:
  • 当我在一个数据库中创建两个实体时,它会显示这个错误。当我要添加的另一个表不在那里时,该程序工作得很好。当然,它不应该有任何错误,因为它没有概念上的缺陷。我只是不能碰巧找到这个错误的原因。

  • 问题内容: 我在单个表中创建两个标识列时遇到问题。这是我工作的一部分…他们不惜任何代价在一个表中需要两个标识列。有什么办法可以做到这一点。 请提供任何语法来一次或以后在单个表中创建两个标识列。 在此先感谢,Shashra 问题答案: 在SQL Server中,您可以具有一个计算列,该列仅与标识(或任何其他)列具有相同的值:

  • 当我试图用Springboot在数据库中保存一个实体时,出现了一种奇怪的行为。 使用调试器,我检查了我的列表仅包含一个订单。除了设置为的属性之外,此订单已完全实例化。 数据库为空,位于

  • 问题内容: 我有一个实体- 。由描述。 Hibernate为每个实体创建一个表,因此当我调用时,我的数据总是保存到该表中。 现在,我需要另一个表来存储相同类型的数据,并且只需要将我的实体保存到该表中。 数据结构 (类似这样): 使用这个 : 和结果,我应该在和 中。 由于系统限制,我无法将这两个对象放在一个表中。(即使创建额外的字段也是个坏主意)。 我可以不进行子类化吗?使用Programmati

  • Hibernate为每个实体创建一个表,因此当我调用时,我的数据总是保存到这个表中。 现在,我需要另一个表来存储相同类型的数据,并且我只需要将我的实体保存到该表中。 数据结构(类似于以下内容): 由于系统的限制,我不能将这两个对象放在一个表中。(即使创建额外字段也是坏主意)。 我可以在不进行子类化的情况下这样做吗?使用programmaticaly hibernate配置?