The databse returned no natively generated identity value问题
com.cqupt.dayday.model
代码
package com.cqupt.dayday.model;
import java.util.Date; /**
* Created by I am master on 2017/3/1.
*/ public class News {
private Integer id;
private String title;
private String author;
private Date date; public News(String title, String author, Date date) {
this.title = title;
this.author = author;
this.date = date;
} public News() { } public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getAuthor() {
return author;
} public void setAuthor(String author) {
this.author = author;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public Date getDate() {
return date;
} public void setDate(Date date) {
this.date = date;
} @Override
public String toString() {
return "News{" +
"id=" + id +
", title='" + title + '\'' +
", author='" + author + '\'' +
", date=" + date +
'}';
}
}
配置文件 News.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.cqupt.dayday.model.News" table="news">
<id name="id" type="java.lang.Integer">
<column name="id"/>
<!--指定主键的生成方式, native:使用数据库本地方式-->
<generator class="native"/>
</id>
<property name="title" type="java.lang.String">
<column name="title"/>
</property>
<property name="author" type="java.lang.String">
<column name="author"/>
</property>
<property name="date" type="java.util.Date">
<column name="date"/>
</property>
</class>
</hibernate-mapping>
hibernate.cfg.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.cqupt.dayday.model.News" table="news">
<id name="id" type="java.lang.Integer">
<column name="id"/>
<!--指定主键的生成方式, native:使用数据库本地方式-->
<generator class="native"/>
</id>
<property name="title" type="java.lang.String">
<column name="title"/>
</property>
<property name="author" type="java.lang.String">
<column name="author"/>
</property>
<property name="date" type="java.util.Date">
<column name="date"/>
</property>
</class>
</hibernate-mapping>
com.cqupt.dayday
测试类
package com.cqupt.dayday; import com.cqupt.dayday.model.News;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.Test; import java.util.Date; /**
* Created by I am master on 2017/3/1.
*/
public class HibernateTest {
@Test
public void test() { SessionFactory sessionFactory=null; Configuration configuration=new Configuration().configure();
//最老的jar包需要这样写,用最新的jar包写会报错
// ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder()
// .applySettings(configuration.getProperties()).build(); sessionFactory=configuration.buildSessionFactory(); Session session=sessionFactory.openSession(); Transaction transaction=session.beginTransaction(); News news=new News();
news.setAuthor("dayday");
news.setDate(new Date());
news.setTitle("java"); System.out.println(news);
System.out.println("-----"+session); session.save(news); transaction.commit(); session.close(); sessionFactory.close();
} }
遇到的问题
1)The databse returned no natively generated identity value
2)使用老式jar包
出错原因:
在指定主键生成策略的时候、配置了<generator class="native"/> 、这是提供自动增长、为数据表中的主键自动增长、但是如果数据库没有定义id列为自动增长的话、就会出现The database returned no natively generated identity value错误
解决方法:
在数据库中手动定义id列自动增长或在数据库中不手动建立该张数据表
The databse returned no natively generated identity value问题的更多相关文章
- Execption:the database returned no natively generated identity value
org.hibernate.HibernateException: The database returned no natively generated identity value at org. ...
- The database returned no natively generated identity value错误解决方案
原因:hibernate项目中在学生表的配置文件中: <id name="studentno" column="studentno"> <ge ...
- Database returned no natively generated
database returned no natively generated 分类:Hibernatehbm.xml中的配置如下: <id name="logId" typ ...
- 【转】Hibernate 常见异常
转载地址:http://smartan.iteye.com/blog/1542137 Hibernate 常见异常net.sf.hibernate.MappingException 当出 ...
- mysql 定义自增
The database returned no natively generated identity value问题 alter table user_table MODIFY user_id I ...
- Hibernate 常见异常
Hibernate 常见异常net.sf.hibernate.MappingException 当出现net.sf.hibernate.MappingException: Error r ...
- org.springframework.orm.hibernate3.HibernateSystemException:
org.springframework.orm.hibernate3.HibernateSystemException: The database returned no natively gener ...
- Hibernate自增列保存失败的问题
author: hiu 更正说明:今天(2014-07-07)才发现的问题,我把@Id设置在了实体类中的id中,@Id是主键,应该设置在实体类的keyjobno中,之前发的文章可能误导了大家,如今更正 ...
- 使用 Hibernate 和 MySQL 需要知道的五件事
https://www.thoughts-on-java.org/5-things-you-need-to-know-when-using-hibernate-with-mysql/ 作者:Thorb ...
随机推荐
- 20165309 实验四 Android程序设计
2017-2018-2 20165309实验四<Java面向对象程序设计>实验报告 一.实验内容 1.Android Studio的安装测试 2.Activity测试 3.UI测试 4.布 ...
- loj#6491. zrq 学反演
题意:求\(\sum_{i_1=1}^m\sum_{i_2=1}^m...\sum_{i_n=1}^mgcd(i_1,i_2,...i_n)\) 题解:\(\sum_{d=1}^md\sum_{i_1 ...
- spring boot(十八)集成FastDFS文件上传下载
上篇文章介绍了如何使用Spring Boot上传文件,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中. 这个项目会在上一个项目的基础上进行构建. 1.pom包 ...
- MYSQL的C API之mysql_query
1.首先使用MYSQL conn 连接数据库 2.设置数据库编码 3.int res = mysql_query(&conn,"SQL语句"); if(!res)表示成功 ...
- Version Control System
Version Control System(版本控制系统),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型 ...
- UI基础一:值节点赋值
METHOD EH_ONSEARCH. *CALL METHOD SUPER->EH_ONSEARCH ** EXPORTING ** HTMLB_EVENT = ** HTMLB_EVENT_ ...
- [每周一文]week 1
花开人间四月天 摘自美文网:https://www.lookmw.cn/xinqing/49623.html 赏春 四月芳菲淡淡香,寻花问柳向斜阳. 陌上行人思作客,人间遍地是春情. 文/ ...
- 数组Array.sort()排序的方法
数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...
- Linux升级内核教程(CentOS7)
1.查看当前内核版本 uname -r 2.通过yum升级内核 通过yum升级内核是最保险的升级方式,因为安装的是操作系统发行厂商验证过兼容性的rpm包,升级风险一般很小. yum install - ...
- jetty隐藏版本号教程
一.查看版本号 直接访问端口不像apache/tomcat/nginx会直接有版本号 但实际查看返回http头时还是带着版本号 二.隐藏版本号操作 编缉$JETTY_HOME/start.ini将je ...