31 lines
900 B
Markdown
31 lines
900 B
Markdown
# ORM Schema (RU)
|
|
|
|
`OrmSchema` строит `TableSpec` на основе аннотаций.
|
|
|
|
## Пример
|
|
|
|
```java
|
|
import com.andrewkydev.database.orm.OrmSchema;
|
|
import com.andrewkydev.database.schema.SqlDialect;
|
|
import com.andrewkydev.database.schema.TableSpec;
|
|
|
|
TableSpec spec = OrmSchema.fromEntity(PlayerModel.class, SqlDialect.MYSQL);
|
|
api.schema().createTable(spec);
|
|
```
|
|
|
|
## Маппинг типов
|
|
|
|
По умолчанию:
|
|
|
|
- `String` -> `VARCHAR(length)`
|
|
- `int`/`Integer` -> `INT`
|
|
- `long`/`Long` -> `BIGINT`
|
|
- `short`/`Short` -> `SMALLINT`
|
|
- `boolean`/`Boolean` -> `BOOLEAN` (PostgreSQL) или `TINYINT(1)` (MySQL)
|
|
- `float`/`Float` -> `FLOAT`
|
|
- `double`/`Double` -> `DOUBLE`
|
|
- `UUID` -> `UUID` (PostgreSQL) или `CHAR(36)` (MySQL)
|
|
- `@DbJson` -> `JSON` (MySQL) или `JSONB` (PostgreSQL)
|
|
|
|
`@DbColumn(length, unique, nullable)` применяется автоматически.
|