appfuse 异常:no natively generated identity value

为了解决以下问题,折腾了好长时间,终于发现了网上有个好的解决方案,非常感谢之。。。。

 

 

http://blog.sina.com.cn/s/blog_5da3d5c50100bjga.html

 

 

appfuse 异常:no natively generated identity val

(2009-01-02 15:43:12)
标签:

appfuse

hibernate

mysql

杂谈

分类:hibernate
appfuse hibernte mysql一起使用,添加用户数据时,出现以下异常:

The database returned no natively generated identity value; nested exception is org.hibernate.HibernateException: The database returned no natively generated identity value

1 类中关于主键的配置为


    @Id  @GeneratedValue(strategy = GenerationType.AUTO)   
    public Long getId() {
        return this.id;
    }

2 数据库的设置为:

   mysql> describe app_user;

+---------------------+--------------+------+-----+---------+----------------+
| Field               | Type         | Null | Key | Default | Extra          |
+---------------------+--------------+------+-----+---------+----------------+
| id                  | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| account_expired     | bit(1)       | NO   |     | NULL    |                |
| account_locked      | bit(1)       | NO   |     | NULL    |                |
| address             | varchar(150) | YES  |     | NULL    |                |
| city                | varchar(50)  | NO   |     | NULL    |                |
| country             | varchar(100) | YES  |     | NULL    |                |
| postal_code         | varchar(15)  | NO   |     | NULL    |                |
| province            | varchar(100) | YES  |     | NULL    |                |
| credentials_expired | bit(1)       | NO   |     | NULL    |                |
| email               | varchar(255) | NO   | UNI | NULL    |                |
| account_enabled     | bit(1)       | YES  |     | NULL    |                |
| first_name          | varchar(50)  | NO   |     | NULL    |                |
| last_name           | varchar(50)  | NO   |     | NULL    |                |
| password            | varchar(255) | NO   |     | NULL    |                |
| password_hint       | varchar(255) | YES  |     | NULL    |                |
| phone_number        | varchar(255) | YES  |     | NULL    |                |
| username            | varchar(50)  | NO   | UNI | NULL    |                |
| version             | int(11)      | YES  |     | NULL    |                |
| website             | varchar(255) | YES  |     | NULL    |                |
+---------------------+--------------+------+-----+---------+----------------+
主键为自动增长型的。但是新增数据时,却有这个异常:

The database returned no natively generated identity value; nested exception is org.hibernate.HibernateException: The database returned no natively generated identity value



 
3  JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO.

  TABLE:使用一个特定的数据库表格来保存主键。

  SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。

  IDENTITY:主键由数据库自动生成(主要是自动增长型)

   AUTO:主键由程序控制。


4 将主键改为 :
 
  @Id @GeneratedValue(strategy=GenerationType.IDENTITY)

 发现还是同样的错误。


5 在数据库里面执行下面语句:
  ALTER TABLE app_user AUTO_INCREMENT = 100;

突然就行了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值