You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetBeans8 Web服务连接PostgreSQL表提示无主键但已设置该如何解决

问题原因
  1. NetBeans 8内置的PostgreSQL JDBC驱动版本过低,无法正确识别PostgreSQL 10及以上版本新增的GENERATED ALWAYS AS IDENTITY类型自增主键的约束信息,会误判表不存在主键。
  2. 你自定义了主键约束名为user_pkey,老版本NetBeans的元数据扫描逻辑默认匹配「表名_pkey」格式的默认主键约束名,识别不到自定义命名的主键。
  3. 数据库连接未指定默认schema,你创建的表位于public schema下,如果NetBeans扫描元数据时没有加载public schema的内容,也会读取不到主键配置。
解决方案
  • 升级JDBC驱动
    下载适配你PostgreSQL版本的最新JDBC驱动jar包,打开NetBeans的「服务」面板,找到「数据库」-「驱动」下的PostgreSQL驱动,右键选择「属性」,替换旧驱动jar包为新版本,重启NetBeans后重新连接数据库再尝试添加表。
  • 重建主键使用默认命名
    执行以下SQL删除自定义命名的主键,重新创建使用默认命名的主键,适配老版本驱动的识别规则:
ALTER TABLE public.test_user DROP CONSTRAINT user_pkey;
ALTER TABLE public.test_user ADD PRIMARY KEY (id);

执行完成后刷新NetBeans中的数据库连接再重试。

  • 配置连接指定schema
    打开当前PostgreSQL数据库连接的属性设置,在高级参数中添加currentSchema=public,确保元数据扫描时会读取public schema下的约束信息。
  • 手动绕开校验
    如果以上方案都不生效,可以跳过NetBeans的自动生成实体向导,手动编写对应表的实体类,自行给id字段添加主键注解,绕开自动识别的校验逻辑。

内容的提问来源于stack exchange,提问作者12athos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:39:04