我已使用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) 我需要动态地获取我的模式中存在的所有表的 META信息,Meta信息是诸如表,实体,列名等.
我遵循了以下教程
如上面的链接所述,我创建了名为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)