当前位置: 首页 > 面试题库 >

获取使用Hibernate映射的属性的列名

陶和歌
2023-03-14
问题内容

如何访问模型的Hibernate映射以找出属性的列名?

列名未在映射中指定,因此Hibernate自动生成它-我想创建一个包含此列名的本机SQL语句。


问题答案:

感谢Jherico,我发现了如何做到这一点:

((Column) sessionFactoryBean.getConfiguration().getClassMapping(Person.class.getName())
        .getProperty("myProperty").getColumnIterator().next()).getName();


 类似资料:
  • 问题内容: 为了验证我收到的数据,我需要确保该长度不会超过数据库列的长度。现在,所有长度信息都存储在Hibernate映射文件中,是否可以通过编程方式访问此信息? 问题答案: 您可以实现,但这并不容易。您可能想要在启动时执行以下操作,并存储值的静态缓存。有很多特殊情况要处理(继承等),但它应适用于简单的单列映射。我可能遗漏了一些instanceof和null检查。

  • http://docs.jboss.org/hibernate/orm/3.3/reference/en-美国/html/collections.html#collections-onetomany 医生说: not-found(可选-默认为exception):指定如何处理引用丢失行的缓存标识符。忽略会将丢失的行视为空关联。 请帮助我理解这个属性的用途?这里的缓存标识符是什么?

  • 问题内容: 在我的项目中,我使用Entity Framework6。我有以下实体: 和 当我插入一个填充了PersonRights的人员对象时,它在数据库中看起来像这样: 人员实体表: PersonRights实体表 当我从数据库加载人时,它没有填充PersonRights属性,这是因为virtual关键字具有延迟加载功能-可以。 然后我得到了person对象的PersonRights,它也可以正

  • 问题内容: 我的Java Bean具有childCount属性。此属性 未映射到数据库列 。取而代之的是,它应该 由数据库通过对Java bean及其子级的联接进行操作 的 函数 来 计算 。如果可以按需/“延迟”计算此属性,那就更好了,但这不是强制性的。 在最坏的情况下,我可以使用HQL或Criteria API设置此bean的属性,但我不希望这样做。 Hibernate 批注可能会有所帮助,但

  • 问题内容: 我有一个正在使用的旧桌子,看起来像这样: 这样做的主要问题是,即使我只需要使用Java类也可以加载列。我知道,构造此文件的最佳方法是从元数据中拆分数据(例如文件名),以便它们位于单独的表中。从那里开始,使数据延迟加载很简单。这就是应该首先完成的方式。 不幸的是,由于组织限制,我可能无法执行上述操作。作为一种解决方法,是否可以使用某些注释将列延迟加载,而不是将其拆分为单独的表?我已经修改

  • 是否可以使用Hiberanate映射数据库列,这样我就可以在HQL查询中使用它,但不能将它映射到映射类中的实际属性? 由于数据库强加给我们的表名和列名类似于hashcodes,我们希望使用HQL进行更新,它可以使用漂亮的映射名称。因此,我们需要在Hibernate中映射列。