我有一个像pg这样的表:
CREATE TABLE t (
a BIGSERIAL NOT NULL, -- 8 b
b SMALLINT, -- 2 b
c SMALLINT, -- 2 b
d REAL, -- 4 b
e REAL, -- 4 b
f REAL, -- 4 b
g INTEGER, -- 4 b
h REAL, -- 4 b
i REAL, -- 4 b
j SMALLINT, -- 2 b
k INTEGER, -- 4 b
l INTEGER, -- 4 b
m REAL, -- 4 b
CONSTRAINT a_pkey PRIMARY KEY (a)
);
Run Code Online (Sandbox Code Playgroud)
以上每行最多可添加50个字节.我的经验是,我需要另外40%到50%的系统开销,甚至没有任何用户创建的索引.所以,每行约75个字节.我将在表中有许多行,可能超过1450亿行,因此该表将推动13-14太字节.我可以使用什么技巧来压缩这个表?我的可能想法如下......
将 …
这是我的pojo注释为实体
@Entity
@Table(name = "book", catalog = "book_db")
public class Book {
private Integer bookId;
private String bookName;
private String bookShortDesc;
private String bookDesc;
private String bookAuthor;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "book_id", unique = true, nullable = false)
public Integer getBookId() {
return this.bookId;
}
@Column(name = "book_name", nullable = false, length = 256)
public String getBookName() {
return this.bookName;
}
@Column(name = "book_short_desc", nullable = false, length = 1024)
public String getBookShortDesc() {
return this.bookShortDesc;
} …Run Code Online (Sandbox Code Playgroud) 有没有办法按照它们在Java类中声明的顺序获取列,或者以其他方式指定顺序?
我正在使用映射工具ant任务在sql文件中为我的类生成DDL.
我让hbm2ddl为我创建表(用于开发目的),列的顺序与类中的字段相反.
如何使它按照与类相同的顺序创建列?
我认为Java类不存储字段的顺序,因此Hibernate根本不知道源中的顺序是什么(如果我考虑更复杂的情况,这似乎是合乎逻辑的).
但是,我能否至少要求Hibernate将PK和FK列作为第一列?
Hibernate 4.0.0(JBoss AS 7.1.2)MySQL 5.1.x.
我的问题有重复,但尚未回答。我是休眠的初学者,同时使用属性从 SQL Server 中的实体自动创建表
<property name="hibernate.hbm2ddl.auto">create</property>
似乎表列的顺序不正确,这对我来说不是问题,直到我使用复合键。现在的问题是列的顺序与业务实体不同。这是我创建的业务实体
@Entity
public class SalesEstimateDtl implements Serializable {
@Id
private Long LedSalesEstID;
@Id
private Integer LedSalesEstRowNo;
Run Code Online (Sandbox Code Playgroud)
这是生成的查询
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]
Run Code Online (Sandbox Code Playgroud)
如何使用 LedSalesEstID 更改 LedSalesEstRowNo 的顺序?
我正在使用 MySQL 创建一个新的 Spring boot 项目,但我不知道为什么我的数据库中的排序是按字母顺序显示的。我想知道它是否可以遵循我的班级顺序,如 ID、姓名、电子邮件、性别和年龄。
这是我第一次使用这种方法生成数据库,通常我是从phpMyAdmin生成的。
这是我在 phpMyAdmin 中的最终结果:
id, address, age, email, gender, name
Run Code Online (Sandbox Code Playgroud)
我希望它遵循我的实体类的顺序:
id, name, email, gender, age, address
Run Code Online (Sandbox Code Playgroud)
这是我的application.properties:
logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
spring.datasource.url=jdbc:mysql://localhost:3306/db
spring.datasource.username=user
spring.datasource.password=x
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
Run Code Online (Sandbox Code Playgroud)
我还创建了User.java:
id, address, age, email, gender, name
Run Code Online (Sandbox Code Playgroud)
和UserRepository.java:
package hello.model;
import org.springframework.data.repository.CrudRepository;
import hello.model.User;
// This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository
// CRUD refers Create, Read, Update, Delete
public interface UserRepository extends …Run Code Online (Sandbox Code Playgroud) hibernate ×4
java ×2
jpa ×2
bigdata ×1
database ×1
ddl ×1
hbm2ddl ×1
openjpa ×1
postgresql ×1
spring-boot ×1
sql-server ×1
storage ×1