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

从XSD生成休眠实体bean

孔鸿宝
2023-03-14
问题内容

我的要求是将巨大的XML值保存到数据库。
在分析了几个选项之后,我最终确定了从巨大的xml生成实体bean类,然后使用hibernate对其进行持久化的过程。
我不选择创建hbm文件,而是选择hibernate注释。这样,我将使用JAXB从XSD生成Java类,并手动添加hibernate注释。
是否有任何eclipse插件或util框架可以使用默认的hibernate注释从XSD生成实体类?


问题答案:

这里是一些文档:

http://confluence.highsource.org/display/HJ3/Making+schema-
derived+classes+ready+for+JPA

http://java.net/projects/hyperjaxb

这是我已完成的项目的工作示例:

  <plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.7.4</version>
    <dependencies>
                  <dependency>
                          <groupId>org.jvnet.hyperjaxb3</groupId>
                          <artifactId>hyperjaxb3-ejb-plugin</artifactId>
                          <version>0.5.5</version>
                  </dependency>
            </dependencies>
    <executions>
      <execution>
        <id>generate-domain1</id>
        <goals>
          <goal>generate</goal>
        </goals>
        <configuration>
          <strict>false</strict>
          <schemaIncludes>
            <value>account.xsd</value>
            <value>customer.xsd</value>
            <value>address.xsd</value>
          </schemaIncludes>
          <bindingIncludes>
            <include>domain-bindings.xjb</include>
          </bindingIncludes>
          <extension>true</extension>
          <generatePackage>your.package.here</generatePackage>
          <generateDirectory>${project.build.directory}/generated-sources/jaxbandjpa</generateDirectory>
          <args>
            <arg>-Xannotate</arg>
            <arg>-Xhyperjaxb3-ejb</arg>
           </args>                  
           <plugins>
            <plugin>
              <groupId>org.jvnet.jaxb2_commons</groupId>
              <artifactId>jaxb2-basics</artifactId>
              <version>0.6.0</version>
            </plugin>
            <plugin>
              <groupId>org.jvnet.jaxb2_commons</groupId>
              <artifactId>jaxb2-basics-annotate</artifactId>
              <version>0.6.0</version>
            </plugin>
          </plugins>
        </configuration>
      </execution>
    </executions>
  </plugin>

希望能帮助到你



 类似资料:
  • 问题内容: 任何人都知道一些有关如何为hibernate创建自定义ID生成器的好教程吗? 问题答案: 在Google上粗略搜索“hibernate自定义ID生成器教程”,发现了以下可能性。我排除了那些看起来没有用的内容,并总结了它们的内容。 http://www.devx.com/Java/Article/30396-涵盖了在数据保留之前生成ID(因此还没有业务密钥)的问题。 http://doc

  • 问题内容: 我使用Hibernate 4和Spring 3。 我有两个实体。 图书实体 和作者实体 和JSON取决于pom.xml 我的根上下文在这里- … servlet-context.xml 控制器。 在我的DAO中找到findAll: 在调试中,我看到该方法返回2条记录,但是Spring无法将结果转换为JSON并返回406 HTTP错误。怎么了? 我附上我在调试中看到的图像。- http:

  • 问题内容: 我在了解线程安全的详细信息时遇到了问题。我知道这本身并不是线程安全的,所以我不会从多个线程访问它们。但是,我找不到有关Hibernate实体的线程安全性的任何信息。我可以在多线程中修改它们,而又仍然将它们附加到用于加载它们的会话中吗? 我不会使用延迟加载(我知道这会导致并发问题)。实体将被正确同步,并且hibernate将通过同步的getter访问它们。 我设想的方案: 使用hiber

  • 问题内容: 能否请您告诉我,我如何才能很好地为Hibernate实体启用Spring自动装配? 假设我有一个实体,并希望在那里有邮件发送者: 有没有比做的更好的方法 在我的DAO中? 谢谢! 问题答案: 有可能的!(这是Spring Roo中的默认样式!) 您所需要做的就是将@Configurable批注添加到您的实体。在配置中并使用AspectJ编织激活注释。 Spring参考中有一章:7.8.

  • 问题内容: 目前,Hibernate允许我直接使用*对一关系定义的对象 是否可以获取外键而不是对象? 我看到的当前方法是在映射中添加addint: 是否有更好的方法来获取外键,或者这是唯一的方法? 问题答案: 是的,你可以这样做。您只需要清楚地告诉休眠状态,哪一个是应该维护的映射,如下所示:

  • 问题内容: 我的实体如下。我的数据模型在下面强制执行,因此我无法更改引用的完整性。因此,我陷入了复合键的困境。我想自动生成/使用一些生成器作为orderId 是的,我已经阅读以下内容。 http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity- mapping- identifier 我不想管理