如何使用springboot将示例数据添加到数据库?

vMysterion:

我有一个带有Spring Data JPA和两个映射到数据库的实体的Spring Boot应用程序。我的应用程序设置为在每次启动时重新创建数据库。现在,我想创建这些POJO的一些实例,并将其保存在数据库中,以便在进行中的开发过程中有一些数据可以测试我的应用程序。

最好的方法是什么?

到目前为止,我尝试过:我的班级添加示例数据

public class DBSampleAdditor {
    @PersistenceContext
    private EntityManager em;

    @Transactional
    public void addSampleData() {
        // creating POJO instances and persist them with em.perists()
    }
}

我试图在我的ApplicationClass的主体中调用这些函数

@SpringBootApplication()
public class ApiApplication {
    public static void main(String[] args) {
        SpringApplication.run(ApiApplication.class, args);
        DBSampleAdditor dbsa = new DBSampleAdditor();
        dbsa.addSampleData();
    }
}

这根本没有用,因为EntityManager从未从持久性单元获取实例。

我还尝试创建一个CommandLineRunner:

@Component
public class PTCommandLineRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("Adding sample data...");
        DBSampleAdditor dbsa = new DBSampleAdditor();
        dbsa.addSampleData();
    }
}

但是在启动过程中似乎从未调用过该程序。

伊姆兰·艾哈迈德(Imran Ahmad):

您可以将@PostConstruct和@Component一起使用,以在启动时插入数据。

在创建bean,注入依赖项,设置所有托管属性以及将bean实际设置为作用域之前,将调用@PostConstruct。

只需将您的数据库存储库注入标有@Component的类中,并在标有@PostConstruct的方法内调用注入的数据库存储库

例:

@Component
public class DbInit {
 
    @Autowired
    private UserRepository userRepository;
 
    @PostConstruct
    private void postConstruct() {
        User admin = new User("admin", "admin password");
        User normalUser = new User("user", "user password");
        userRepository.save(admin, normalUser);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Symfony登录应用程序-示例数据未添加到数据库

如何将示例数据库导入postgres?

将数据添加到数据库并使用JSON

当使用javascript动态添加数据库时,如何使用php将信息添加到数据库?

如何使用c#将数据从xml添加到数据库中

如何使用php将json序列化数据添加到数据库中

如何使用Flutter将视频添加到Firebase数据库

如何使用外部SQL查询将项目版本添加到jira数据库

如何使用 Rest API Javascript 将新文档添加到 Firestore 数据库

将文件添加到MSSQL数据库时如何使用相对文件路径

如何使用JavaScript中的PATCH请求将项目添加到数据库中的数组?

如何使用React Native将文档添加到Firestore数据库

如何使用phpmyadmin将通配符添加到任何用户或数据库?

如何使用sql数据库将google map信息面板添加到此代码

如何使用 fastAPI 将多个图像 url 添加到 postgres 数据库中?

如何使用Rails将信息从数据库添加到html表中

将数据从 MySQL 数据库添加到 RecyclerView

将数据添加到JanusGraph数据库

将数据添加到MySQL数据库

将数据添加到mysql数据库

将数据库中的数据添加到阵列

将 MySQL 与下载的示例数据库连接

如何在将指标数据添加到流入数据库中时使用时间字段?

如何将新数据从ebay添加到Django中的数据库?

如何将 Xml 数据添加到 Access 数据库错误

如何将新的数据行添加到我的 Derby 数据库中?

如何将数据添加到新创建的 Room 数据库?

WPF,将数据添加到数据库后如何更新/刷新UI

如何将初始数据添加到SQLite数据库?