我试图将一个示例项目导入到Eclipse中,并且在运行该应用程序时遇到以下给定的错误。
Caused by: org.hibernate.MappingException: org.hibernate.dialect.OracleDialect does not support identity key generation
at org.hibernate.dialect.Dialect.getIdentityColumnString(Dialect.java:743)
at org.hibernate.dialect.Dialect.getIdentityColumnString(Dialect.java:733)
at org.hibernate.mapping.Table.sqlCreateString(Table.java:426)
at org.hibernate.cfg.Configuration.generateSchemaCreationScript(Configuration.java:1028)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:125)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:492)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1744)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1782)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)
... 32 more
按照此 SO链接,我已更改了
@GeneratedValue(strategy = GenerationType.IDENTITY)
至
@GeneratedValue(strategy = GenerationType.AUTO)
要么 @GeneratedValue(strategy = GenerationType.TABLE)
但是没有用。
这是代码:
User.java:
@Entity
@Table(name = "users")
@ManagedBean
@ViewScoped
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name = "username", nullable = false)
private String username;
@Column(name = "password", nullable = false)
private String password;
@Column(name = "role", nullable = false)
private String role;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
}
从applicationContext.xml:
<!-- Session Factory Declaration -->
<bean id="SessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="DataSource" />
<property name="annotatedClasses">
<list>
<value>com.crud.model.User</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
您可以使用告诉Hibernate使用序列来生成您的ID
@Id
@Column(name = "ID")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "id_Sequence")
@SequenceGenerator(name = "id_Sequence", sequenceName = "ID_SEQ")
private int id;
这个配置基本上告诉Hibernate使用一个名为ID_SEQ的数据库序列来生成该对象的ID。如果需要其他唯一ID,则可以在其他对象上指定其他序列;如果要在整个系统中使用全局唯一ID,则可以使用相同的序列。
唯一的缺点是不能执行批量插入(没有其他配置),因为Hibernate每次都需要从数据库中获取下一个序列值,如果要使用MySQL数据库,则不能使用此配置。
,因为它们不支持序列。
如果没有任何意义,请通知我,我将作进一步解释。
问题内容: com.something.SuperClass: com.something.SubClass: 给我这个例外: 对我来说,生成ID的最好和最方便的方法是什么? 我不想更改继承策略。 问题答案: 这里的问题是您将“每类表”继承与混合在一起。考虑MsSQL中的标识列。它基于列。在“每类表”策略中,每个类使用一个表,每个表都有一个ID。 尝试:
我在.NET Core2.0中创建了一个RSA加密/解密服务,目前我使用密钥库机密来保存RSA密钥。但据我所知,我可以用Key Vault密钥实现这一点,但目前还不能实现,因为KV Keys不支持2048长RSA密钥的加密/解密...这真让我摸不着头脑。 那么,我是否可以使用带有Azure Key Vault密钥的2048密钥来实现RSA加密/解密呢?
我正在尝试创建一个公钥以允许我推送到Git,但我的. ssh文件夹尚未创建。 以下是我运行的命令: $ssh-keygen-t rsa-Cemaill@me.com 生成公共/私有rsa密钥对 输入保存密钥的文件(/h/.ssh/id\u rsa): 这就是H:驱动器配置、数据、配置文件、配置文件中的全部内容。V2 我认为有一个问题,因为当我得到提示输入文件,其中保存密钥(/h//. ssh/id
我正在寻找一些指导,配置owin中间件承载令牌身份验证,以支持Open Id Connect密钥旋转。 Opend Id Connect规范说明了以下有关关键点旋转的内容: 签名密钥的旋转可以通过以下方法完成。签名者在其jwks_uri位置的JWK集中发布其密钥,并在每条消息的JOSE头中包含签名密钥的kid,以向验证者指示将使用哪个密钥验证签名。可以通过定期向jwks_uri位置的JWK集合添加
Keycloak是否支持基本身份验证(包含单词basic word后跟空格和base64编码的字符串username:password的授权头),如果支持,我如何为它配置领域和客户端设置?我想用Keycloak保护我的rest api,并支持基本身份验证作为一个选项。
我们目前正在使用W3C Web身份验证支持的Keycloak 12.0.0无密码登录/身份验证功能(webAuthn用于无密码身份验证)。 我能够自定义身份验证流(通过keycloak的管理控制台)。使用Keycloak的“JavaScript适配器”,我们可以登录我们的Android应用程序(使用Chrome自定义标签-带指纹/设备PIN)。WebAuthn工作很好。 但在iOS14和Safar