Java 是否在同一会话中将多个具有相同标识符的对象保存到数据库中?
可能重复:Java 是否在同一会话中将多个具有相同标识符的对象保存到数据库中?,java,hibernate,orm,nhibernate-mapping,Java,Hibernate,Orm,Nhibernate Mapping,可能重复: 我有两个实体通过多对一的关系联系在一起 多个[类别]------一个[游戏] 纵队 idgame-----------------gameid 类别-----------------游戏名称 我需要在不动产的分类部分有许多游戏的主键。我曾尝试在会话中执行此操作,但出现错误。“具有相同标识符值的不同对象已与会话[org.POJO.Category#1]关联。” 我认为我的配置文件是错误的,但我可能错了。这是我的密码 try{ SessionFactory sessio
我有两个实体通过多对一的关系联系在一起 多个[类别]------一个[游戏] 纵队 idgame-----------------gameid
类别-----------------游戏名称 我需要在不动产的分类部分有许多游戏的主键。我曾尝试在会话中执行此操作,但出现错误。“具有相同标识符值的不同对象已与会话[org.POJO.Category#1]关联。” 我认为我的配置文件是错误的,但我可能错了。这是我的密码
try{
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
session = sessionFactory.openSession();
//Create new instance of Contact and set
Transaction tx = session.beginTransaction();
Game gam = new Game();
gam.setgenre(game.getString("genre"));
gam.setgname(game.getString("game_name"));
gam.setplatform(game.getString("platform"));
gam.setdescription(game.getString("description"));
session.saveOrUpdate(gam);
session.update(gam);
JSONObject cate = game.getJSONObject("Category");
int gid = gam.getgameid();
Category cat1 = new Category();
cat1.setgameid(gid);
cat1.setcategory(cate.getString("Category1"));
session.save(cat1);
Category cat2 = new Category();
cat2.setgameid(gid);
cat2.setcategory(cate.getString("Category2"));
session.save(cat2);
类别的我的配置文件。它是xml
-hibernate-mapping-
-class name=“org.POJO.Category”table=“Category”-
-id name=“gameid”column=“Game\u idGame”-
-/身份证-
-财产
name=“类别”
column=“类别”/-
-/阶级-
-/休眠映射-
sdfdsfsdfsdf标识符(id)在逻辑上(技术上)等于主键。不能有两个具有相同主键的对象,因此不能有两个具有相同idenetifier的对象
关系表的主键唯一地标识表中的每个记录
如果您需要两个具有相同主键的对象,则说明您的设计有问题。标识符(id)在逻辑上(技术上)等于主键。不能有两个具有相同主键的对象,因此不能有两个具有相同idenetifier的对象
关系表的主键唯一地标识表中的每个记录
如果您需要两个具有相同主键的对象,则说明您的设计有问题。类别无法将gameid用作主键。它需要有自己的主键。游戏id将是引用游戏表中游戏id的外键。类别不能将游戏id用作主键。它需要有自己的主键。游戏id将是一个外键,引用游戏表中的游戏id。您已经选择了许多游戏id-s。主键用于唯一标识表中的每个实体(行),而不是关联的实体(行)。因此,您应该在类别中有一个类别ID作为PK,并在idgame上有一个简单的索引。您选择了许多gameid-s。主键用于唯一标识表中的每个实体(行),而不是关联的实体(行)。因此,你应该在分类中有一个类别ID作为PK,并在idgame上有一个简单的索引。谢谢大家,这真的很有帮助。谢谢大家,这真的很有帮助。