我试图通过h2数据库进行春季安全登录,我有两个实体:用户和UserRoles。它们通过一个注释连接到多个注释。在我运行我的应用程序之后,创建了UserRoles表和JoinTable,但是表用户没有。用户实体:
Entity
@Table(name = "USERS")
public class Users {
@Id
@Column(name = "username", nullable = false)
private String username;
@Column(name = "password", nullable = false)
private String password;
@Column(name = "enabled", nullable = false, columnDefinition = "1")
private int enabled;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "USER_ROLE", joinColumns = {
@JoinColumn(name = "username")}, inverseJoinColumns = {
@JoinColumn(name = "user_role_id")})
private Set<UserRoles> userRoles = new HashSet<UserRoles>(0);
....
}UserRoles实体:
@Entity
@Table(name = "USER_ROLES")
public class UserRoles {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_role_id")
private int user_role_id;
@Column(name = "role", nullable = false)
private String role;
...
}hibernate.config.xml:
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.url">jdbc:h2:file:d:\WebProjectDb</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.H2Dialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">false</property>
<property name="hbm2ddl.auto">update</property>
<mapping class="com.webproject.Courses"/>
<mapping class="com.webproject.Users"/>
<mapping class="com.webproject.UserRoles"/>
</session-factory>
</hibernate-configuration>发布于 2016-12-12 11:58:44
Hibernate不允许创建带有“密码”列的表。重命名为passworT解决了这个问题。
发布于 2016-12-08 12:41:02
1.尝试更改表名。
2.你可以改变财产
<property name="show_sql">true</property>检查控制台中的sql查询
3.尝试更改属性<property name="hibernate.hbm2ddl.auto">create</property>
希望这能帮上忙!
https://stackoverflow.com/questions/41039587
复制相似问题