草庐IT

java - hibernate 4.3.x - 加载所有实体注释类

coder 2024-03-30 原文

在我工作的一个项目中,我不使用 Spring,我只使用 Hibernate。我不想将 hbm.xml 文件用于实体映射/描述/等。我只想使用注释。

我如何告诉 Hibernate 从某些包中加载所有 Entity/Table 注释类?

我在网上搜索过,但没有找到。我也找不到有关最新 Hibernate 版本的信息(主要是过时的文章/帖子/等)。

编辑 1:

http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/#mapping

hibernate 文档页面是这样说的:

Object/relational mappings can be defined in three approaches:
1) using Java 5 annotations (via the Java Persistence 2 annotations)
2) using JPA 2 XML deployment descriptors (described in chapter XXX)
3) using the Hibernate legacy XML files approach known as hbm.xml

就是这样,我只想将 1) 与 session 工厂/ session hibernate API。

编辑 2:

即使我的问题被标记为重复,但事实并非如此,因为我不想使用 JPA(和隐含的描述符),而只是使用上面列出的方法 1)。

最佳答案

好的,这在 Hibernate 4.3.x 中是不可能的,而且看起来永远不可能。

另请参阅此问题/答案(尽管这篇文章很旧,但非常有效):
Add Annotated Class in Hibernate by adding all classes in some package. JAVA

1) 在我对此做了一些研究之后,似乎常见的误解是 Configuration.addPackage 允许我们从给定的包中加载所有实体类。这不是真的。我通过查看 hibernate 源发现了它的困难方法,然后我才发现上面的 SO 问题/答案证实了它。事实上,我不太确定 addPackage 做了什么,但它对我的情况似乎不是很有用。

2) 似乎我们可以做的一件事是为我们自己的每个带注释的实体类调用 Configuration.addAnnotatedClass,例如通过在编译时对这些类进行硬编码。或者 ... 或者使用 ReflectionsGuava我们可以在运行时动态地从给定的包中找到所有(即我们自己的)实体类,循环遍历它们,并且仍然调用 Configuration.addAnnotatedClass。 Reflections 的唯一问题是它有很多自己的依赖项。因此,如果我们决定使用 Reflections,我们必须为这个简单的事情(多么痛苦)添加 9 个新的 JAR。使用 Guava 会更容易一些,我们只需调用
ClassPath.from ( Thread.currentThread().getContextClassLoader() ). getTopLevelClasses(pckg).

如果有人有更好的方法 - 请随时提供。
我会接受最佳答案,不一定是我的答案。

关于java - hibernate 4.3.x - 加载所有实体注释类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28097847/

有关java - hibernate 4.3.x - 加载所有实体注释类的更多相关文章

  1. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  2. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  3. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  4. ruby-on-rails - 跳过状态机方法的所有验证 - 2

    当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested

  5. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  6. ruby - Nokogiri 剥离所有属性 - 2

    我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog

  7. ruby - 获取模块中定义的所有常量的值 - 2

    我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c

  8. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

    我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

  9. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  10. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

随机推荐