Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理DataNucleus中的1-N关系?_Java_Mysql_Persistence_Jdo_Datanucleus - Fatal编程技术网

Java 如何处理DataNucleus中的1-N关系?

Java 如何处理DataNucleus中的1-N关系?,java,mysql,persistence,jdo,datanucleus,Java,Mysql,Persistence,Jdo,Datanucleus,请帮助解决以下问题 场景 我们的对象结构如上图所示。有一个名为“User.Java”和“User.Java”的支持Java持久化的对象,其中包含“Us”列表 public类FXUserDAOImpl实现FXUserDAO{ private-TOVOConvertor-TOVOConvertor=null; 私有PersistenceManagerFactory pmf; 公共FXUserDAOImpl(){ this.tovoConvertor=new FXUserVOTO(); this.p

请帮助解决以下问题 场景

我们的对象结构如上图所示。有一个名为“User.Java”和“User.Java”的支持Java持久化的对象,其中包含“Us”列表

public类FXUserDAOImpl实现FXUserDAO{
private-TOVOConvertor-TOVOConvertor=null;
私有PersistenceManagerFactory pmf;
公共FXUserDAOImpl(){
this.tovoConvertor=new FXUserVOTO();
this.pmf=JDOHelper.getPersistenceManagerFactory(“TALOS”);
}
@凌驾
公共对象持久化(FXUserTO){
FXUserVO=tovoConvertor.convertTO(to);
PersistenceManager pm=pmf.getPersistenceManager();
事务tx=pm.currentTransaction();
对象id=null;
试一试{
tx.begin();
FxUserManagementMonitor.monitor.debug(“持久化:+vo”);
pm.makePersistent(vo);
tx.commit();
id=pm.getObjectId(vo);
FxUserManagementMonitor.monitor.debug(“持久化对象Id:+Id”);
}捕获(例外e){
FxUserManagementMonitor.monitor.error(“异常持久化数据:”,e);
抛出新的DataManagementRuntimeException(PlatformExceptionName.QUERY\u SQL\u Exception,“未能执行持久化”,e);
}最后{
if(tx.isActive()){
tx.回滚();
}
pm.close();
}
FxUserManagementMonitor.monitor.debug(“成功持久化”+id);
返回id;
}
@凌驾
公共列表检索all(){
PersistenceManager PersistenceManager;
交易;
List toList=new ArrayList();
persistentManager=pmf.getPersistenceManager();
事务=persistentManager.currentTransaction();
试一试{
transaction.begin();
FxUserManagementMonitor.monitor.debug(“检索范围…”);
Extent voExtend=persistentManager.getExtent(FXUserVO.class,true);
迭代器迭代器=voExtend.Iterator();
迭代器.forEachRemaining(eachVo->{toList.add(tovoConvertor.convertVO(eachVo));});
commit();
}捕获(例外e){
FxUserManagementMonitor.monitor.error(“未能检索所有…”,e);
抛出新的DataManagementRuntimeException(PlatformExceptionUnim.QUERY\u SQL\u Exception,“无法执行retrieveAll”,e);
}最后{
if(transaction.isActive()){
transaction.rollback();
}
persistentManager.close();
}
FxUserManagementMonitor.monitor.debug(“成功检索所有…”);
返回收费表;
}

}
为键“PRIMARY”重复输入“Group1”
,这样您就有了一条带有该主键的记录,并尝试插入一条新记录。修复您的持久性代码,但我的要求不同。我只想将UserGroup链接到User。所以我甚至不确定,1到N的持久化将解决我的问题无论你的“需求”是什么,你都试图用相同的PK持久化多个对象,因此出现了错误。因此,请修复您的持久性代码!如果您想引用一个对象,那么您可以使用“getObjectById”并使用它!那么,我需要做什么更改才能将用户对象与用户组链接起来呢?当你不发布用于建立关系和持久化的实际代码时,谁能说“要更改什么”?!