在oracle中使用触发器bbb和序列aaa已经把id设置成自增了。测试了下,没问题。
现在的问题是在xxx.hbm.xml的文件中关于id的那块怎么设置?
补充下:本来这个例子程序是连接sql server 2000的我把它改成了oracle的,现在登陆没问题,就是插入有问题,我一插,在tomcat中就提示“SQL 命令未正确结束”,我是个新手,我是怀疑sql语句的问题,可我找不到具体的语句,找到了歌getHibernateTemplate().save(object);,我估计这就是最低层的语句了。所以我只能怀疑是id自增的问题。
原始id那块的代码如下(那是连接sql server 2000的):
<hibernate-mapping>
<class name="com.wy.form.DepartmentForm" table="tb_department">
<id name="id" type="java.lang.String">
<column name="id" />
<generator class="native"/>
</id>
。。。。。。。。
看看怎么去改一下。
我是新手,能力太弱,麻烦大家了!!!!!请给个具体代码。若是我提供的信息太少,请给我发消息。
oracle怎么把主键设置自动增长
第一种,通过序列以及触发器实现主键自增长。这种方式适用于直接使用JDBC连接数据库。这种方式将主键自增长的任务完全交给数据库,我们无需在代码层面上进行任何控制。第二种,通过序列以及Hibernate配置实现自增长。这种方式适用于通过Hibernate连接数据库的方式。这种方式在数据库上创建序列,通过配置在POJO类...
hibernate 中oracle配置uuid
把<generator class="uuid"><\/generator>改为 <generator class="uuid.hex" \/>
使用SSH框架的Hibernate,怎么配置hbm.xml文件和连接oracle数据库?
spring链接配置即可。一、<dependencyManagement><dependencies><!-- 使用spring的BOM管理依赖 --><dependency><groupId>org.springframework<\/groupId><artifactId>spring-framework-bom<\/artifactId><version>4.2.6.RELEASE<\/version><type>pom<\/type><scope>import<\/scope><\/dependency><\/dependencies>...
HIBERNATE无法将NULL值插入列'id',一个主键自增问题
在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence), 而在Interbase中使用 生成器(generator)。返回的标识符是long, short或者 int类型的。hilo 使用一个高\/低位算法高效的生成long, short 或者 int类型的标识符。给定一个表和字段(默 认分别是 hibernate_unique_key 和next_hi)作为高...
oracle中有一个ID字段的值是不需要填写的,在插入数据的时候会自动生成...
首先没有什么字段是自动生成的,你说的应该是某一张表设置了一个序列和触发器,然后每次插入的时候触发器都会从序列里面取个值修改ID
hibernate_sequence 是不是一定要建?
这个要看你的需要哦 sequence是序列哦 就表的主键自动增长的 在orcale数据库中要使用id自动增加 就需要建立序列在每次插入数据的时候就要获取序列一次 如果你在hibernate的映射实体类的配置文件配置了序列的话 在插入数据的时候就不需要获取序列 就能实现id知道增长哦 ...
Hibernate执行save()打印的insert语句怎么没有id字段??
1,检查你的方言,Oracle应该不支持identity这种生成策略的。2,把generator class="uuid"试试,你的orwId_o用的是String。3,为啥不用sequence呢?
oracle主键用了自增,插入不了
Hibernate设置的主键生成器,能在save(instance)时自动加上相关的主键值。自己直接写JAVA,目的就是要增强可控性(比如直接插入主键=10000000的记录),自然得手工提供主键值了,Hibernate可管不着。你的触发器里面产生了主键值,可这个值没有参与insert操作,只是白白地让序列增长。
Oracle的触发器和hibernate的主键冲突
hibernate 的配置采用navtive所以id是采用当前数据库自增方式sequence 而你oracle本身中又有触发器自增主键,你在插入数据时,sequence被加了两次。所以你插入的数据都是2.4.6这样的偶数。解决方法:1.删除触发器 2.hibernate中的主键方式采用其他的。比如uuid ...
在java中 主键生成策略(hibernate)都是指的是id的吗
使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用)6、hilo 使用hilo生成策略,要在数据库中建立一张额外的表,默认表名为hibernate_unique_key,默认字段为integer类型,名称是next_hi(比较少用)我们也可以...