当前位置: 首页 > 知识库问答 >
问题:

主键类型为string的表中的H2 db insert时的NumberFormatException

怀展
2023-03-14

我正在使用Spring boot和h2 db在microsoft-sql-server模式下进行集成测试用例jdbc:h2:~/sample;mode=mssqlserver运行时使用适当的数据类型创建了测试用例表

@Entity
@Table(name = "TeamMemberType", schema = "SCH")
public class TeamMemberType {
  @Id
  @Column(name = "TeamMemberCode", unique = true, nullable = false)
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private String teamMemberCode;

  @Column(name = "Code")
  private String code;
}

控制台:

Hibernate: create table SCH.TeamMemberType (TeamMemberCode varchar(255) identity not null, Code varchar(255))

在运行测试用例时,它尝试在数据库中插入

insert INTO SCH.TeamMemberType (TeamMemberCode , Code) values ( 'Dev', 'Developer')

获取异常以下

原因:org.h2.jdbc.jdbcsqlexception:转换“dev”时出现数据转换错误;SQL语句:插入到sch.teamMemberType(TeamMemberCode,Code)值('developer'、'developer')中,原因为:java.lang.NumberFormatException:对于输入字符串:“dev”

为什么h2 db故意[TeamMemberCode varchar(255)identity]将“dev”转换为number

共有1个答案

步联
2023-03-14

删除@generatedvalue(strategy=generationtype.identity),因为您不希望Hibernate为您生成ID,因为您的ID是一个字符串。您必须在每次插入操作期间手动设置它

 类似资料:
  • 问题内容: 我知道String类的hashCode()方法 不能 保证为不同的String-s生成唯一的哈希码。我看到了很多将String键放入HashMap-s的用法(使用默认的String hashCode()方法)。如果地图使用真正不同的String键替换了先前放置在地图上的HashMap条目,那么很多这种用法可能会导致重大的应用程序问题。 在String.hashCode()对于不同的St

  • 问题内容: 我有两个问题: 它给出了错误: 它给出了错误: 我不知道该怎么解决。 问题答案: 这里的金额是可选的。您必须确保没有。 仅在不为nil时被调用。 同样的问题。是可选的。

  • 我有一个函数从服务器获取一个文件并解析了该文件,我正在使用一个具有如下完成处理程序的函数来获取该文件 但是,当我尝试使用该函数时 我得到无法将类型“()”的返回表达式转换为返回类型“String”的错误。 知道我做错了什么吗?

  • 请针对以下需求对Cassandra表的数据模型给出一些建议/想法。我不确定这是否可以实现。如果可以实现,我们就不需要编写外部程序了 注意:这有助于连接两个Kafka主题和任何更新发生在任何一个Kafka,两者将反映在非ormalized格式在卡桑德拉表 根据我们的要求,任何一个主键的值是相同的,应该向上。未插入。

  • 这是我的代码,vue3+typescipt 但是 typescript 推断的类型不一致 在 v-for 中遍历对象时,key被推断为string | number 类型,这就导致 input.name 无法接受 number 类型而类型报错。 有没有大佬能解释下。为什么key会被推断为 string | number 类型

  • 当我点击我的颤振应用程序中的一个按钮时,我出现了一个错误。这里有人有解决方案吗?! 路线 争论 还有地图 完全错误 生成CategoryMalsScreen(脏,依赖项:[[U ModalScopeStatus],状态:[U CategoryMalsScreenState]时引发了以下错误:类型“String”不是类型“Map”的子类型 导致错误的相关小部件是:CategoryMalsScreen