Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在hibernate中按特定顺序创建表列?_Java_Sql Server_Hibernate - Fatal编程技术网

Java 如何在hibernate中按特定顺序创建表列?

Java 如何在hibernate中按特定顺序创建表列?,java,sql-server,hibernate,Java,Sql Server,Hibernate,我的问题有重复,但尚未得到答复。我是hibernate的初学者,同时使用属性从SQLServer中的实体自动创建表 创建 在我使用复合键之前,表列的顺序似乎不正确,这对我来说不是问题。现在的问题是,该列的顺序与业务实体不一样。 这是我创建的业务实体 @Entity public class SalesEstimateDtl implements Serializable { @Id private Long LedSalesEstID; @Id private Integer LedSalesE

我的问题有重复,但尚未得到答复。我是hibernate的初学者,同时使用属性从SQLServer中的实体自动创建表

创建

在我使用复合键之前,表列的顺序似乎不正确,这对我来说不是问题。现在的问题是,该列的顺序与业务实体不一样。 这是我创建的业务实体

@Entity
public class SalesEstimateDtl implements Serializable {
@Id
private Long LedSalesEstID;
@Id
private Integer LedSalesEstRowNo;
下面是生成的查询

CREATE TABLE [dbo].[SalesEstimateDtl](
             [LedSalesEstRowNo] [int] NOT NULL,
             [LedSalesEstID] [numeric](19, 0) NOT NULL,
             PRIMARY KEY CLUSTERED 
             (
               [LedSalesEstRowNo] ASC,
               [LedSalesEstID] ASC
             ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

如何使用LedSalesEstID更改LedSalesEstRowNo的顺序?

事实上,使用注释指定的列创建的表不应依赖于它的顺序。
SELECT*
语句都不能完全确保列也按特定顺序排列

对于Hibernate团队的响应,这似乎是一个已知的问题,无法通过Hibernate设置列的顺序。邮局

据我所知,我们可能不完全依赖Hibernate的
hbm2ddl
来创建表。在通过Hibernate创建表的那一刻,我们就可以根据需要对其进行修改以对列进行排序


希望这能回答你的问题

在Hibernate配置文件中使用以下属性

showShemaUpdate

然后在创建SessionFactory之前使用以下代码。
String file=“SqlSchema.sql”;
SchemaUpdate=新的SchemaUpdate(配置);
update.setOutputFile(文件);
update.execute(false,false)


它将在一个包含所有DDL查询的位置创建SqlSchema.sql文件。按您想要的顺序编辑它们。

使用@EmbeddedId

 @Entity
    class Student{
        @EmbeddedId
        StudentInfo id;

        String Name;
        String Class;
        Integer RollNo;
    }

    @Embeddable
    class StudentInfo implements serializable {
        Integer StudentID;
        Integer StudentRowNo;
    }

我的回答有问题吗?我只是热衷于理解问题和问题本身的实际答案?你为什么不接受答案?很抱歉,我尝试使用stackOverflow的移动应用程序,但出现了错误:D