相关疑难解决方法(0)

休眠中的 PreInsert 和 PreUpdate 事件监听器

我已使用PreInsertEventListener事件PreUpdateEventListener侦听器在表中插入创建日期和更新日期。
我面临的问题是,当我将实体保存在数据库中时,创建日期无法插入到表中,与更新记录时插入更新日期相同,它也不会插入更新日期。

我的代码示例如下所示:

听众类别:

public class PreInsertListener implements PreInsertEventListener,  
                                          PreUpdateEventListener 
{
    @Override
    public boolean onPreInsert(PreInsertEvent arg0) {
        City.class.cast(arg0.getEntity()).setCreated_date(new Date());
        return false;
    }

    @Override
    public boolean onPreUpdate(PreUpdateEvent arg0) {
        System.out.println("Update event......");
        City.class.cast(arg0.getEntity()).setUpdated_date(new Date());
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

Hibernate连接类:

public class HibernateUtil 
{

    private static final SessionFactory sessionFactory;

    static {
        try {
            AnnotationConfiguration config = new AnnotationConfiguration();
            config.setListener("pre-insert", new PreInsertListener());
            config.setListener("pre-update", new PreInsertListener());
            sessionFactory = config.configure().buildSessionFactory();;

        } catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw …
Run Code Online (Sandbox Code Playgroud)

java orm hibernate event-listener

5
推荐指数
1
解决办法
2万
查看次数

如何在spring boot中获取All表元数据 - JPA - hibernate?

我需要动态地获取我的模式中存在所有表的 META信息,Meta信息是诸如表,实体,列名等.

我遵循了以下教程

https://vladmihalcea.com/how-to-get-the-entity-mapping-to-database-table-binding-metadata-from-hibernate/

如上面的链接所述,我创建了名为MetadataExtractorIntegrator.java的Integrator

package com.test.ttv;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.model.relational.Database;
import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.service.spi.SessionFactoryServiceRegistry;

public class MetadataExtractorIntegrator implements org.hibernate.integrator.spi.Integrator {

    public static final MetadataExtractorIntegrator INSTANCE = new MetadataExtractorIntegrator();

    private Database database;

    private Metadata metadata;

    public Database getDatabase() {
        return database;
    }

    public Metadata getMetadata() {
        return metadata;
    }

    @Override
    public void integrate(
            Metadata metadata,
            SessionFactoryImplementor sessionFactory,
            SessionFactoryServiceRegistry serviceRegistry) {

        this.database = metadata.getDatabase();
        this.metadata = metadata;

    }

    @Override
    public void disintegrate(
        SessionFactoryImplementor sessionFactory,
        SessionFactoryServiceRegistry serviceRegistry) {

    } …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa spring-boot

2
推荐指数
1
解决办法
3139
查看次数

标签 统计

hibernate ×2

java ×2

event-listener ×1

jpa ×1

orm ×1

spring ×1

spring-boot ×1