我正在使用jhipster,我得到了以下jdl格式:
我对域做了一些修改,如下所示:
@Entity
@Table(name = "client_account")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class ClientAccount implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private Long id;
@NotNull
@Column(name = "first_name", nullable = false)
private String firstName;
@NotNull
@Column(name = "last_name", nullable = false)
private String lastName;
@NotNull
@Column(name = "phone", nullable = false)
private String phone;
@Column(name = "identity")
private String identity;
@Column(name = "referal")
private String referal;
@Column(name = "refered_by")
private String referedBy;
@OneToOne
@MapsId
private User user;
@OneToMany(mappedBy = "clientAccount")
private Set<Reputation> reputations = new HashSet<>();
@OneToMany(mappedBy = "clientAccount")
private Set<Trip> trips = new HashSet<>();
以及信誉域:
@Entity
@Table(name = "reputation")
public class Reputation implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Column(name = "rate", nullable = false)
private Integer rate;
@Column(name = "comment")
private String comment;
@ManyToOne
@JsonIgnoreProperties("reputations")
private TransporterAccount transporterAccount;
@ManyToOne
@JsonIgnoreProperties("reputations")
private ClientAccount clientAccount;
用户域:
@Entity
@Table(name = "jhi_user")
public class User extends AbstractAuditingEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Pattern(regexp = Constants.LOGIN_REGEX)
@Size(min = 1, max = 50)
@Column(length = 50, unique = true, nullable = false)
private String login;
@JsonIgnore
@NotNull
@Size(min = 60, max = 60)
@Column(name = "password_hash", length = 60, nullable = false)
private String password;
@Size(max = 50)
@Column(name = "first_name", length = 50)
private String firstName;
@Size(max = 50)
@Column(name = "last_name", length = 50)
private String lastName;
@Email
@Size(min = 5, max = 254)
@Column(length = 254, unique = true)
private String email;
@NotNull
@Column(nullable = false)
private boolean activated = false;
@Size(min = 2, max = 10)
@Column(name = "lang_key", length = 10)
private String langKey;
@Size(max = 256)
@Column(name = "image_url", length = 256)
private String imageUrl;
@Size(max = 20)
@Column(name = "activation_key", length = 20)
@JsonIgnore
private String activationKey;
@Size(max = 20)
@Column(name = "reset_key", length = 20)
@JsonIgnore
private String resetKey;
@Column(name = "reset_date")
private Instant resetDate = null;
@JsonIgnore
@ManyToMany
@JoinTable(
name = "jhi_user_authority",
joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name")})
@BatchSize(size = 20)
private Set<Authority> authorities = new HashSet<>();
转运蛋白liquibaseMap如下:
<changeSet id="20200218210800-1" author="jhipster">
<createTable tableName="client_account">
<column name="user_id" type="bigint">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="first_name" type="varchar(255)">
<constraints nullable="false" />
</column>
<column name="last_name" type="varchar(255)">
<constraints nullable="false" />
</column>
<column name="phone" type="varchar(255)">
<constraints nullable="false" />
</column>
<column name="identity" type="varchar(255)">
<constraints nullable="true" />
</column>
<column name="referal" type="varchar(255)">
<constraints nullable="true" />
</column>
<column name="refered_by" type="varchar(255)">
<constraints nullable="true" />
</column>
<!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
</createTable>
</changeSet>
<changeSet id="20200218210800-2" author="jhipster">
<addForeignKeyConstraint baseColumnNames="user_id"
baseTableName="client_account"
constraintName="fk_client_account_user_id"
referencedColumnNames="id"
referencedTableName="jhi_user"/>
</changeSet>
以及声誉清算基数:
<changeSet id="20200218210700-1-data" author="jhipster" context="faker">
<loadData
file="config/liquibase/fake-data/reputation.csv"
separator=";"
tableName="reputation">
<column name="id" type="numeric"/>
<column name="rate" type="numeric"/>
<column name="comment" type="string"/>
<!-- jhipster-needle-liquibase-add-loadcolumn - JHipster (and/or extensions) can add load columns here, do not remove-->
</loadData>
</changeSet>
<changeSet id="20200218210700-2" author="jhipster">
<addForeignKeyConstraint baseColumnNames="transporter_account_id"
baseTableName="reputation"
constraintName="fk_reputation_transporter_account_id"
referencedColumnNames="user_id"
referencedTableName="transporter_account"/>
<addForeignKeyConstraint baseColumnNames="client_account_id"
baseTableName="reputation"
constraintName="fk_reputation_client_account_id"
referencedColumnNames="user_id"
referencedTableName="client_account"/>
</changeSet>
我仍然收到以下stacktrace错误:
选择信誉0_.id作为id1_14_,信誉0_.client_account_user_id作为client_a4_14_,信誉0_.comment作为comment2_14_,信誉0_.rate作为rate3_14_,信誉0_.transporter_account_user_id作为transpor5_14_从信誉信誉0_按信誉排序0_.id升序限制?[42122-200] 2020-02-20 09:48:03.515错误23616 ---- [ XNIO-1 task-7] c.a.dropme.aop.logging.日志记录方面:在com.abdrid.dropme.service.reputationQueryService.findByCriteria()中出现异常,原因为“组织休眠异常”。无法准备语句“”,exception =“"无法准备语句;SQL [选择信誉0_.id作为id1_14_,信誉0_.client_account_user_id作为客户端_a4_14_,信誉0_.comment作为注解2_14_,信誉0_.rate作为比率3_14_,信誉0_.transporter_account_user_id作为transpor5_14_从信誉信誉0_按信誉0_.id升序限制排序?];嵌套的异常是org. hib.exception.SQLGrammarException:无法准备语句'
2条答案
按热度按时间5jdjgkvh1#
我得到了一个类似的问题...我添加了一个新的字段在一个实体称为标题(字符串)和jhipster实体子生成器工作得很好...没有问题
代码得到编译,门户也在工作-但当我试图列出实体页面时-Ajax调用给出了500 Http状态-内部服务器为"无法创建预准备语句"...
是的
./mvnw清除集成测试
然后再次正常运行./mvnw。所有缓存的代码都被刷新,Portal开始恢复工作。
s3fp2yjn2#
您使用的表名User是H2数据库的保留关键字?
首先尝试用双引号将表名User括起来。如果不起作用,请用Employee之类的名称重命名表。
有一个关键字列表不能用作标识符(表名、列名等),除非它们被引起来(用双引号括起来)。
http://www.h2database.com/html/advanced.html#keywords