我正在尝试hbm2java
使用maven 配置生成POJO类和DAO对象。我要处理的问题之一是没有生成程序包名称。我为此使用以下pom:
<execution>
<id>hbm2java</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2java</goal>
</goals>
<inherited>false</inherited>
<configuration>
<components>
<component>
<name>hbm2java</name>
<implementation>configuration</implementation>
</component>
</components>
<componentProperties>
<packagename>package.name</packagename>
<configurationfile>target/hibernate3/generated-mappings/hibernate.cfg.xml</configurationfile>
</componentProperties>
</configuration>
</execution>
但是,生成的代码从以下内容开始:
// default package
// Generated 2010-05-17 13:11:51 by Hibernate Tools 3.2.2.GA
/**
* Messages generated by hbm2java
*/
public class Messages implements java.io.Serializable {
有没有一种方法可以强制maven生成 packagename中 定义的 包 部分? __
更新:
这是我的hibernate.cfg.xml,它也是由hibernate-tools(hbm2cfgxml)自动生成的:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/db</property>
<property name="hibernate.connection.username">username</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<mapping resource="package/name/Messages.hbm.xml" />
</session-factory>
</hibernate-configuration>
为了以防万一,下面是hibernate3-maven-plugin的工作配置,用于自底向上方法:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>generate-xml-files</id>
<phase>generate-resources</phase>
<goals>
<goal>hbm2hbmxml</goal>
<goal>hbm2cfgxml</goal>
</goals>
</execution>
<execution>
<id>generate-entities</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2java</goal>
</goals>
</execution>
</executions>
<configuration>
<components>
<component>
<name>hbm2hbmxml</name>
<implementation>jdbcconfiguration</implementation>
<outputDirectory>target/classes</outputDirectory>
</component>
<component>
<name>hbm2cfgxml</name>
<implementation>jdbcconfiguration</implementation>
<outputDirectory>target/classes</outputDirectory>
</component>
<component>
<name>hbm2java</name>
<implementation>configuration</implementation>
<outputDirectory>target/generated-sources/hibernate3</outputDirectory>
</component>
</components>
<componentProperties>
<propertyfile>src/main/resources/database.properties</propertyfile>
<jdk5>true</jdk5>
<ejb3>false</ejb3>
<packagename>com.mycompany.myapp</packagename>
<format>true</format>
<haltonerror>true</haltonerror>
</componentProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.5.3.0_1</version>
</dependency>
</dependencies>
</plugin>
这是我src/main/database.properties
文件的内容:
hibernate.connection.driver_class=org.apache.derby.jdbc.EmbeddedDriver
hibernate.connection.url=jdbc:derby:./derbyDBs/EMPLDB
hibernate.connection.username=APP
hibernate.connection.password=APP
hibernate.dialect=org.hibernate.dialect.DerbyDialect
#workaround for http://opensource.atlassian.com/projects/hibernate/browse/HBX-1145
hibernate.connection.autocommit=true
此设置:
*.hbm.xml
在target/classes
(与包)过程中generate-resources
。hibernate.cfg.xml
在target/classes
与映射文件中的条目。target/generated-sources/hibernate3
(我建议遵循target/generated-sources/<tool>
生成资源的约定,以便IDE可以自动检测到它们)。这是clean compile
针对具有两个表的示例数据库的结果:
$ mvn clean编译
...
$树目标/
目标/
├──班级
│├──com
││└──我的公司
││└──myapp
││├──Department.class
││├──Department.hbm.xml
││├──员工等级
││└──Employee.hbm.xml
│├──database.properties
│└──hibernate.cfg.xml
└──生成源
└──hibernate3
└──com
──我的公司
└──myapp
├──Department.java
└──Employee.java
我有一个当地的库伯内特斯环境,我基本上是复制的。将kube/config文件添加到我的本地文件中,并将“上下文”、“用户”和“集群”信息添加到我当前的“.kube/config”文件中。没关系,我可以连接到本地文件。 但是我想用命令将这些信息添加到我的本地配置文件中。 因此,关于这个页面,我可以使用“证书颁发机构数据”作为参数,如下所示:--- 但它会抛出如上所述的错误。我用的是kubernete
问题内容: 我在用Maven或Eclipse编译一些Scala时遇到问题,我尝试从Java jar导入一个包含名称空间和同名类的类。 我可以用编译。 例如,Java项目(jar)包含: 编译器抱怨: 在Scala 2.9.0.1(和)中使用Maven 3.0.03 / Eclipse 3.7.1 。 我遇到问题的jar是-它肯定包含几个实例,其中存在同名的名称空间和对象。 我正在尝试在Scala中
问题内容: 我正在使用Java 8的JOOQ 3.6.4从架构中生成一组JOOQ记录。 有些表是结构相似的参考数据,假设它们具有ID,CODE和VALUE列(它们可能具有其他列,但至少都具有这些列)。 在我的代码中(不是由JOOQ生成的),我有一个接口“ ReferenceData”,该接口定义了与JOOQ为这三列生成的代码匹配的访问器。我想告诉JOOQ向它生成的Record对象添加一个子句(JO
新的 Azure 函数 3.0 SDK 提供了一种实现启动类的方法。它允许访问通过依赖关系注入可用的服务集合,我可以在其中添加自己的组件和第三方服务。 但是我不知道如何使用配置文件。 我的第三方服务将大型结构作为参数,这些配置文件使用二进制文件进行复制。我可以将它们复制到appsettings.json文件的子部分中: 配置值根据部署环境进行更新。我使用 Azure DevOps 的文件转换任务:
我在不同的文件夹中动态创建文件,像这样: 这给了我: 但由于我正在许多文件夹中创建同名文件,因此我希望通过添加文件夹名称作为前缀来区分它们,以获得: 我怎么能得到这个?
问题内容: 我正在解析由外部程序生成的xml文件。然后,我想使用自己的名称空间将自定义注释添加到此文件。我的输入如下所示: 问题是lxml仅在使用命名空间时才声明它们,这意味着该声明会重复多次,就像这样(简化): 是否可以强制lxml在诸如或的父元素中只编写一次此声明?还是有充分的理由不这样做?我想要的结果是: 一个重要的问题是必须保留从文件中读取的现有数据,因此我不能仅制作一个新的根元素(我想?