HibernateToolTask(hbm2hbmxml)不';t从@org.hibernate.annotations.index annotations在hibernate映射中生成索引
我正在尝试使用hibernate注释从POJO生成hibernate映射。 然后我想使用liquibase生成数据库模式。 所以我需要在POJO中定义索引 POJO示例:HibernateToolTask(hbm2hbmxml)不';t从@org.hibernate.annotations.index annotations在hibernate映射中生成索引,hibernate,hibernate-mapping,hibernate-annotations,hibernate-tools,database-indexes,Hibernate,Hibernate Mapping,Hibernate Annotations,Hibernate Tools,Database Indexes,我正在尝试使用hibernate注释从POJO生成hibernate映射。 然后我想使用liquibase生成数据库模式。 所以我需要在POJO中定义索引 POJO示例: @Entity public class A { @Id @GeneratedValue private Long id; @Index(name = "IDX_NAME") @ForeignKey(name="sd") private String name; } 但当我
@Entity
public class A {
@Id
@GeneratedValue
private Long id;
@Index(name = "IDX_NAME")
@ForeignKey(name="sd")
private String name;
}
但当我在ant中运行HibernateToolTask时:
<hibernateTool>
<classpath>
<path location="${path}"/>
</classpath>
<annotationconfiguration configurationfile="src/hibernate.cfg.xml"/>
<hbm2hbmxml destdir="${project.dir}"/>
<hbm2ddl destdir="database/liquibase" export="false" outputfilename="update_${stamp}.sql" />
</hibernateTool>
如何使hibernate在映射中生成索引
更新:
我发现,liquibase使用注释来生成模式,所以这部分问题得到了解决。我还有一个:
我想将现有数据库反向工程到POJO。POJO是从映射生成的,映射(使用jdbcannotation-hbm2hbmxml生成)没有任何索引。
我相信这本质上是同一个问题:hbm2hbmxml不生成索引
更新2:
为什么我需要这个?
我有一个现有的数据库模式。我曾经改变它,然后对POJOs进行反向工程。
现在我想使用POJO并通过注释生成映射和模式
所以我想让POJO匹配当前的数据库模式以继续使用它们。很明显,除了外键名和索引外,所有内容都是匹配的。但是hbm2java不生成@Index注释,例如
<hibernateTool>
<jdbcconfiguration propertyfile="${build.dir}/etc/hibernate.properties" packagename="${doPackageName}"/>
<hbm2java destdir="${destinationDir}" jdk5="true" ejb3="true"/>
<hbm2ddl destdir="${destinationDir}" export="false" outputfilename="update_${stamp}.sql" />
</hibernateTool>
此任务在ddl中生成索引,而不在POJO中生成索引
HibernateToolTask(hbm2hbmxml)不会从@o.h.a.index注释在hibernate映射中生成索引
意图不明确,但这可能无法实现。从文件中:
生成一组.hbm
文件夹。打算一起使用
带着
执行逆向工程,但是
可与任何类型的
配置e、 g.从
基于注释的到hbm.xml的pojo
并非所有可能的映射转换都是可能的/实现的(欢迎投稿),因此可能需要一些手动编辑。
捐款(欢迎:)
我想将现有数据库反向工程到POJO。POJO是从映射生成的,映射(使用jdbcannotation-hbm2hbmxml生成)没有任何索引。我相信这本质上是同一个问题:hbm2hbmxml不生成索引
您不必为此生成映射,您可以使用从数据库生成EJB3注释的POJO。也许你应该解释一下你到底想做什么。我在原始的帖子中添加了一些关于我想做什么的解释,但是既然你已经有了注释,为什么还要使用xml映射呢?我真的不明白这一点,这看起来很麻烦。我现在需要的是带有@Index注释的POJO。我只是认为在映射中生成索引是完全相同的任务(我可能希望使用中间出方法并从映射开始)。
create table A (id bigint not null auto_increment, name varchar(255), primary key (id)) type=InnoDB;
create index IDX_NAME on A (name);
<hibernateTool>
<jdbcconfiguration propertyfile="${build.dir}/etc/hibernate.properties" packagename="${doPackageName}"/>
<hbm2java destdir="${destinationDir}" jdk5="true" ejb3="true"/>
<hbm2ddl destdir="${destinationDir}" export="false" outputfilename="update_${stamp}.sql" />
</hibernateTool>