播放进化表格名称

时间:2015-10-09 09:35:04

标签: postgresql playframework ebean playframework-evolutions

我有Play!Framework以jdbcPostgresql作为数据库运行。我想为开发使用启用进化。

Play似乎没有自动转义表名。例如,在创建名为user的表时,我似乎无法自动创建表,因为user是SQL中的保留字。

Play会产生如下演变:

# --- Rev:1,Ups - 4fb5e22
create table user (
id                        bigserial not null,
name                      varchar(255),
constraint pk_user primary key (id));

有没有办法自动转义表名?

由于

2 个答案:

答案 0 :(得分:1)

我不确定是否可能。您可以尝试使用一些常见的转义

像Hibernate一样:

@Table(name="`user`")
像JPA2一样:

@Table(name="\"user\"")

对于我自己 - 我从不使用保留字来命名。你永远都会堕落。所以只需使用不同的表名,即使您不想更改类名本身,也可以使用不同的表名对其进行注释:

@Table(name="user_table")

答案 1 :(得分:0)

我不确定你的意思是自动'。演变基本上是提交给数据库的sql命令,因此,postgresql escapes识别的名称也应该是你演变中的有效语法。我没有postgresql专家,但我相信双引号会做你想做的事情:

create table "user" (
  id bigserial not null,
  name varchar(255),
constraint pk_user primary key (id));