gpt4 book ai didi

java - org.hibernate.cfg.Configuration.getClassMapping(className) 方法从 4.3.x 到 5.x 的 hibernate 迁移

转载 作者:IT老高 更新时间:2023-10-28 20:42:15 26 4
gpt4 key购买 nike

在 Hibernate 4.3.x 中,有一个类 org.hibernate.cfg.Configuration 的方法 getClassMapping(className)。但是在 Hibernate 5.x 中,这个 getClassMapping(className) 方法从 Configuration 类中移除了。

Hibernate-5 中的代码替换是什么?

请帮助解决此迁移问题。

最佳答案

posted到 Broadleaf Commerce,因为他们还需要 PersistentClass:

I've been tooling with Hibernate 5, and some of these changes .... To get metadata now use the Serviceloader:

package org.broadleafcommerce.openadmin.server.dao;

import org.hibernate.boot.SessionFactoryBuilder;
import org.hibernate.boot.spi.MetadataImplementor;
import org.hibernate.boot.spi.SessionFactoryBuilderFactory;
import org.hibernate.boot.spi.SessionFactoryBuilderImplementor;

public class EntityMetaData implements SessionFactoryBuilderFactory {

private static final ThreadLocal<MetadataImplementor> meta = new ThreadLocal<>();

@Override
public SessionFactoryBuilder getSessionFactoryBuilder(MetadataImplementor metadata, SessionFactoryBuilderImplementor defaultBuilder) {
meta.set(metadata);
return defaultBuilder;
}

public static MetadataImplementor getMeta() {
return meta.get();
}
}

您将需要该文件:

/resources/META-INF/services/org.hibernate.boot.spi.SessionFactoryBuilderFactory

使用完全限定的类名,在我的示例中是:

org.broadleafcommerce.openadmin.server.dao.EntityMetaData

关于java - org.hibernate.cfg.Configuration.getClassMapping(className) 方法从 4.3.x 到 5.x 的 hibernate 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32780664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com