我的环境:WAMP中的Hibernate 5,Java 8,Phpmyadmin

问题:Hibernate在表中创建自动增量ID,但是下一个序列被赋予另一个表.

预期

Table 1 Table 2

1. Hello 1. Foo

2. World 2. Bar

相反,它正在创造

Table 1 Table 2

1. Hello 2. Foo

3. World 4. Bar

项目结构

的hibernate.cfg.xml

/p>

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/ansarihibernate

localuser

1

org.hibernate.dialect.MySQLDialect

org.hibernate.cache.internal.NoCacheProvider

true

create

MainM2M.java

package org.ansari.hibernate.manytomany;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class MainM2M {

public static void main(String[] args) {

StudentM2MCertificates st1 = new StudentM2MCertificates();

st1.setM2m_cert_det("Oracle Cert");

StudentM2MCertificates st2 = new StudentM2MCertificates();

st2.setM2m_cert_det("Big Data Cert");

StudentM2M s1 = new StudentM2M();

s1.setM2m_stu_name("Ansari");

s1.getSetM2MCert().add(st1);

StudentM2M s2 = new StudentM2M();

s2.setM2m_stu_name("Mohammed");

s2.getSetM2MCert().add(st2);

SessionFactory sessFac = new Configuration().configure().buildSessionFactory();

Session session = sessFac.openSession();

session.beginTransaction();

session.save(s1);

session.save(s2);

session.getTransaction().commit();

session.close();

sessFac.close();

}

}

StudentM2M.java

package org.ansari.hibernate.manytomany;

import java.util.HashSet;

import java.util.Set;

import javax.persistence.CascadeType;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.ManyToMany;

import javax.persistence.Table;

@Entity

@Table(name="STUDENTM2M")

public class StudentM2M {

@Id

@GeneratedValue

private int m2m_id;

private String m2m_stu_name;

@ManyToMany(cascade=CascadeType.ALL)

private Set setM2MCert = new HashSet(0);

public Set getSetM2MCert() {

return setM2MCert;

}

public void setSetM2MCert(Set setM2MCert) {

this.setM2MCert = setM2MCert;

}

public int getM2m_id() {

return m2m_id;

}

public void setM2m_id(int m2m_id) {

this.m2m_id = m2m_id;

}

public String getM2m_stu_name() {

return m2m_stu_name;

}

public void setM2m_stu_name(String m2m_stu_name) {

this.m2m_stu_name = m2m_stu_name;

}

}

StudentM2MCertificates

package org.ansari.hibernate.manytomany;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.Table;

@Entity

@Table(name="CERTM2M")

public class StudentM2MCertificates {

@Id

@GeneratedValue

private int m2m_cert_id;

private String m2m_cert_det;

public int getM2m_cert_id() {

return m2m_cert_id;

}

public void setM2m_cert_id(int m2m_cert_id) {

this.m2m_cert_id = m2m_cert_id;

}

public String getM2m_cert_det() {

return m2m_cert_det;

}

public void setM2m_cert_det(String m2m_cert_det) {

this.m2m_cert_det = m2m_cert_det;

}

}

表结构

certm2m

hibernate_sequence

studentm2m

studentm2m_certm2m

Java自动生成增量补丁自动部署_java-Hibernate正在为表生成自动增量交替ID相关推荐

  1. 自动生成小工具(二):根据建表sql自动生成增删改查sql语句文件

    Mybatis自动生成插件虽然功能强大,但是也略显笨重.我自己开发了一个自动生成的小工具,更加简单,更加轻量级. 一共只有几百行代码,想改的话,直接修改即可.根据自己的实际情况,可以进行灵活的二次开发 ...

  2. java中显示动态信息的方法_java里的动态表单技术

    最近的一个项目,由于客户的需求等信息不确定,为了降低以后修改的成本及产品的推广考虑到动态表单技术,之前也一直在考虑到动态表单技术,毕竟在delphi里已经实现过了,由于我们采用的hibernate的执 ...

  3. typeorm 生成实体类_android常用orm框架greenDAO创建表生成实体类

    package com.example.greendao_test.DB_Initialize; import java.io.IOException; import de.greenrobot.da ...

  4. java装箱和拆箱的意义_java的自动拆箱和装箱是每个程序员都要知道的

    自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西. 自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动 ...

  5. java 布尔表达式_java - 布尔值,条件运算符和自动装箱

    java - 布尔值,条件运算符和自动装箱 为什么抛出false public static void main(String[] args) throws Exception { Boolean b ...

  6. java自动类型提升_Java中的基本数据类型转换(自动、强制、提升)

    说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间的转换关系. 自动类型转换 自 ...

  7. Hibernate入门(IDEA下自动生成映射文件及实体类)

    1.Hibernate开发步骤 1.创建Hibernate配置文件 2.创建持久化类 3.创建对象-关系映射文件 4.通过Hibernate API编写访问数据库的代码 2.创建一个hibernate ...

  8. link url下载php,php脚本生成google play url的下载链接,下载apk并自动反编译后获取android版本号...

    php脚本生成google play url的下载链接,下载apk并自动反编译后获取android版本号 需求: get the offer tracking link follow the redi ...

  9. java smart算法_Java Restful API 文档生成工具 smart-doc

    谁说生成api文档就必须要定义注解? 谁说生成接口请求和返回示例必须要在线? 用代码去探路,不断尝试更多文档交付的可能性. 如果代码有生命,为什么不换种方式和它对话! 一.背景 没有背景.就自己做自己 ...

  10. 点滴积累【C#】---检验编号在本表中自动生成,与其他表无关

    检验编号在本表中自动生成,与其他表无关 效果: 描述:在本表中自动生成编号,与其他表无关. 调用: 1 protected void Page_Load(object sender, EventArg ...

最新文章

  1. 项目管理过程中,如何编制初步工作说明书
  2. hdu 4311 Meeting point-1
  3. 【转】Apache 配置虚拟主机三种方式
  4. 一个好的销售团队需具备的4个特点
  5. tf.train.GradientDescentOptimizer().minimize()细致探索
  6. 转:毕业几年出来来的我们的生活
  7. [转载] 重新抛出异常与 public Throwable fillInStackTrace()
  8. 全网首发:给doubango增加支持H264 stap-a帧
  9. 【运筹学】匈牙利法 ( 匈牙利法示例 )
  10. 雷军,打不倒的王者!
  11. 第3章基本程序设计结构(java知识点笔记)
  12. 外贸沟通谈判中加分项,这些你都知道吗?
  13. Android触摸事件实现笔触画布
  14. java游戏 麦克斯 狗,奇幻射击针对兽人BOSS麦克斯的召唤兽用法
  15. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(一、编译连接前准备)
  16. 解析人工智能与人类智慧的求同存异
  17. 14 Tornado - XSRF
  18. 在python中print表示的数据类型是_【Python连载】那些必须掌握的Python数据类型
  19. 工作流之activiti6新手上路
  20. 通往财富自由之路详细笔记(20)

热门文章

  1. Python创建进程、线程的两种方式
  2. 迭代列表不要For循环,这是Python列表推导式最基本的概念
  3. python 基本类型,运算,循环
  4. Python爬虫进阶必备 | X中网密码加密算法分析
  5. Jupyter的安装和基本使用
  6. Linux——vi编辑器
  7. 干货 | ZooKeeper 源码和实践揭秘
  8. shell 文件 开头的格式
  9. Keras入门之搭建回归神经网络
  10. Security Tutorials系列文章第七章:User-Based Authorization(上)