Ars*_*Ars 6 spring hibernate spring-orm
我已经创建了 user 和 userRole 表
用户实体
@Entity
@Table(name = "USERS")
public class User {
@Id
@Column(name = "USERNAME", nullable = false, unique = true)
private String username;
@Column(name = "PASSWORD", nullable = false)
private String password;
@Column(name = "ENABLED", nullable = false)
private boolean enabled = true;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user", fetch = FetchType.EAGER)
private Set<UserRole> userRole = new HashSet<>();
Run Code Online (Sandbox Code Playgroud)
用户角色实体
@Entity
@Table(name = "USER_ROLES", uniqueConstraints = @UniqueConstraint(
columnNames = { "ROLE", "USERNAME" }))
public class UserRole {
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "user_role_id",
unique = true, nullable = false)
private Integer userRoleId;
@Column(name = "ROLE")
private String role;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "USERNAME")
private User user;
Run Code Online (Sandbox Code Playgroud)
当我启动我的应用程序时,我收到一个错误和这个堆栈跟踪:
ERROR JdbcEnvironmentImpl:420 - Could not fetch the SequenceInformation from the database
org.h2.jdbc.JdbcSQLException: Column "start_with" not found [42122-197]
Run Code Online (Sandbox Code Playgroud)
但我没有任何“start_with”列。在我的 UserRole 实体没有 userRoleId 列之前,一切正常,但后来我添加了它来执行不唯一的“角色”列,然后发生了这种情况。但仍然一切正常,我只是被这个错误所困扰,它的原因是什么?
我建议检查您的 Hibernate 方言。
由于start_valueHibernate 在我的 PostgresQL 数据库序列中查找的列,我遇到了类似的错误。此字段名称是 HibernateSequenceInformationExtractorLegacyImpl类中的默认值,该类有许多子类,每个子类都取决于您的精确数据库服务器及其版本。Hibernate 根据您指定的方言加载正确的类。
就我而言,我使用的是org.hibernate.dialect.PostgreSQLDialect方言,这是一个(不推荐使用的)类,旨在与 PostgesQL 8.2 版本一起使用。org.hibernate.dialect.PostgreSQL9Dialect因为我的数据库托管在 PostgresQL 9 服务器上,所以我切换到了。问题消失了。
| 归档时间: |
|
| 查看次数: |
7863 次 |
| 最近记录: |