草庐IT

hibernate-mapping

全部标签

java - Hibernate 是否必须驱动数据库设计?

我昨天一整天都在阅读关于Hibernate的各种文章/教程,虽然我被它的强大所震撼,但我对它有一个主要的担忧。似乎标准做法是允许Hibernate为您设计/生成您的DB模式,这是一个令我窒息的新概念和可怕概念。从我阅读的教程中,您只需将一个新实体添加到您的hibernate.cfg.xml配置文件,使用@Entity注释您想要的任何POJO,然后瞧-Hibernate创建给你的表。虽然这很酷,但它让我想知道一些场景:如果您已经有一个DB模式,而Hibernate想要为您生成的模式不符合该模式怎么办?如果您有一个疯狂的DBA拒绝在预定义(非Hibernate)模式上让步怎么办?如果您有包

java - Hibernate 查询语法异常 : org. hibernate.hql.ast.QuerySyntaxException: unexpected token

我有一个查询,我要连接两个表ROuteMaster和RouteHalts。当我执行内部连接时,我得到了org.hibernate.hql.ast.QuerySyntaxException:unexpectedtoken:onnearline1,column169[SELECTrm.id,rm.routeCode,rm.startPlaceId,rm.endPlaceId,rm.active,rm.linkedRouteFROMcom.oprs.pojo.routes.RouteMasterrmINNERJOINRouteHaltsrhonrm.id=rh.routeIdWHERErh.

java - 构建 EntityManagerFactory 后如何获取 Hibernate 配置?

我的Web框架(Play1.2.5)创建了一个EJB3Configuration本地方法,该方法用于创建EntityManagerFactory(source).我正在编写一个脚本,并希望从配置中运行generateSchemaUpdateScript()方法来制作我可以验证并在生产部署中运行的SQL脚本。我遇到的问题是,在构建EntityManagerFactory之后,我无法弄清楚如何访问已使用的Configuration对象或如何生成Configuration对象。 最佳答案 您无法从entitymanagerfactory取

java - 有没有办法在没有 DTO 的情况下将 Hibernate 实体公开为 RESTful 资源?

我正在开发一个简单的网络应用程序,它将域模型公开为RESTful资源。我计划使用JPA2(Hibernate)和SpringMVCREST支持。在将Hibernate实体编码为XML/JSON时,如果实体被分离,它将为惰性子关联抛出LazyLoadingException。如果实体仍然附加到HibernateSession,它几乎会加载整个数据库。我尝试使用DozerCustomFieldMapper来确定该属性是否为未加载的惰性HibernateCollection,然后返回NULL。但如果我们有双向关联,Hibernate会急切地加载多对一端,Dozer将尝试复制属性,这将以无限循

Java:声明具有两个相关泛型类型的映射 (<T> Map<Class<? extends ClassA<T>>,Class<? extends ClassB<T>>>)

是否可以声明一个映射,将特定子类的键映射到特定子类的值,但确保两个类共享相同的类型参数?对于背景:ClassA和ClassB都实现了公共(public)资源的行为publicabstractclassClassA{publicabstractTgetResource();}publicabstractclassclassB{publicabstractvoidconsoumeResource(Tresource);}我想从ClassA和ClassB的实现进行映射,并确保只有“兼容”对可以放在一个条目中。 最佳答案 另一种方法是提供您

java - 使用 Spring、Hibernate 和 LocalSessionFactoryBuilder 配置 sessionFactory

我正在尝试使用spring3.2和hibernate4创建sessionFactorybean。为此我使用了以下代码。但问题是buildSessionFactory()已弃用并且建议在javadoc中改用buildSessionFactory(ServiceRegistryserviceRegistry)。但是,我无法理解什么是ServiceRegistry以及如何使用buildSessionFactory(ServiceRegistryserviceRegistry)。@ConfigurationpublicclassAppConfig{...@BeanpublicSessionFa

java - Hibernate命名查询及其性能优势?

正如hibernate文档所说,命名查询的目的是将HQL从项目中的不同位置清除到某些xml中的单个位置(在声明性方法的情况下)。这意味着在查询修改但重新加载的情况下不需要重新编译session工厂是必需的,这意味着在大多数情况下服务器会在查询对象被缓存时启动。但是在注释的情况下,我需要在实体级别定义命名查询。所以这里再次编译需要。我的问题是命名查询是否也有助于提高性能。这是我的理解:-1)当我使用命名查询时,只有查询对象缓存在二级缓存中。当我说只是查询对象时,它意味着只是查询语法被缓存而不是查询结果。对吗?如果它是正确的,那么它可能仅在HQL的情况下有用,因为我们可以避免将HQL转换为

Java 泛型 : method signature for (deep copy of) generic Maps

我有一些Map,它们本身又可能包含Map(任何类型)。我写了一个带有签名的方法:publicstaticHashMapdeepCopyHashMap(HashMaps);但是,我现在想概括此代码以支持一般的Map,但仍会返回与参数类型相同的对象。所以不是:publicstaticHashMapdeepCopyHashMap(HashMaps);publicstaticCheckedMapdeepCopyCheckedMap(CheckedMaps);publicstaticTreeMapdeepCopyTreeMap(TreeMaps);...etc.我想要这样的东西:publicst

java - 在 Hibernate 4.3 中关闭 SessionFactory

我正在将我的Hibernate升级到最新版本。使用旧的HibernateUtil.java我没有遇到任何问题,但是在升级它时,SessionFactory似乎不再关闭了。这是我的新HibernateUtil.java类:importorg.hibernate.HibernateException;importorg.hibernate.cfg.Configuration;importorg.hibernate.SessionFactory;importorg.hibernate.boot.registry.StandardServiceRegistryBuilder;publiccla

java - 过滤掉 Log4j2 文件中的 Hibernate 日志

我有一个log4j2.xml文件,如下所示。它正在运行,但它正在获取大量Hibernate和GWT日志文件。我怎样才能排除这些包,或者我怎样才能让我的日志文件只包含来self的包层次结构的日志记录? 最佳答案 删除您的“调试”根记录器。然后添加以下记录器,它将仅记录来自给定“some.dummy.package”的日志所以最后你会有 关于java-过滤掉Log4j2文件中的Hibernate日志,我们在StackOverflow上找到一个类似的问题: http