0

JBossでは、アプリがデプロイされたときにimport.sqlを実行できます。

Glassfishで達成できますか?また、バージョンごとにいくつかのスクリプトを追加できますか?たとえば、バージョン2.5では、この特定のユーザーレコードを追加します。

私は現在DBMigrationとLiquiBaseを見ていますが、他に何か提案はありますか?または、2つのうちどちらが経験に基づいて信頼できるものですか?

ありがとう、
czetsuya

4

1 に答える 1

0

残念ながら、数日間の調査の結果、Glassfishでは同じ機能を実現できないと思います。代わりに、@ PostConstructメソッドを使用して@Startup、@ Singleton注釈付きBeanを作成し、Glassfishの起動時にデータベーステーブルの行を作成することもできます。

@Singleton
@Startup
public class InitData {
    @Inject
    private Logger log;

    @PersistenceContext
    private EntityManager em;

    @PostConstruct
    private void init() {
        log.debug("[dropship-ejb] init data");

        @SuppressWarnings("unchecked")
        List<Role> roles = em.createQuery("FROM Role r").getResultList();

        if (roles == null || roles.size() == 0)
            initData();
    }

    private void initData() {
        // insert roles
        createRole("member", "Member");
        createRole("affiliate", "Affiliate");
        createRole("backend", "Backend");
        createRole("admin", "Administrator");
    }

    private Role createRole(String name, String description) {
        Role r = new Role();
        r.setName(name);
        r.setDescription(description);
        em.persist(r);

        return r;
    }
}
于 2012-12-24T08:40:10.963 に答える