我尝试在两个表之间创建一对一的关系。

其中之一是Person:

public class Person implements Serializable {

static final long serialVersionUID = 1L;

private long id;

private String _email;

private String _pass;

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

public String getEmail() {

return _email;

}

public void set_email(String _email) {

this._email = _email;

}

public String getPass() {

return _pass;

}

public void set_pass(String _pass) {

this._pass = _pass;

}

}

第二个是ReqC2dmRegId表:

public class ReqC2dmRegId implements Serializable {

private static final long serialVersionUID = 1L;

Person person;

String C2dmid;

private long id;

public ReqC2dmRegId(){}

public String getC2dmid() {

return C2dmid;

}

public void setC2dmid(String c2dmid) {

C2dmid = c2dmid;

}

public ReqC2dmRegId(Person person, String C2dmid) {

super();

this.person = person;

this.C2dmid = C2dmid;

}

public Person getPerson() {

return person;

}

public void setPerson(Person person) {

this.person = person;

}

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

}

现在,在我的程序中,我总是首先创建Person,并且仅在需要时添加此ReqC2dmRegId。

现在,我想做的就是链接这两个表。我的意思是,当我坚持使用此ReqC2dmRegId(当然,我向ReqC2dmRegId中的人添加了正确的ID)时,我希望我的ReqC2dmRegId用正确的Person ID更新或保存新行。

这些是我的hbm文件:

ReqC2dmRegId.hbm.xml

/p>

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

person

Person.hbm.xml

/p>

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

我究竟做错了什么?

当我尝试运行时:

//this should to update or save the object in DB

public void update (Object query){

EntityManager em = emf.createEntityManager();

em.getTransaction().begin();

//em.createNativeQuery(query).executeUpdate();

em.merge(query);

em.flush();

em.getTransaction().commit();

em.close();

}

我得到:

attempted to assign id from null one-to-one property:Person

最后,它应如下所示:

**id email _pass**

2 lala@gmail.com 1234

ReqC2dmRegId

**id REQC2DMREGID**

2 ffgghhjj

更新:

在我放弃尝试了解它不起作用的方式之后

我更改了我的ReqC2dmRegId.hbm.xml

看起来像这样(多对一):

而且工作正常,问题是当我尝试修改ReqC2dmRegId表时

使用我的更新方法,它使用相同的personid创建一个now行

id person_id C2dmid

1 3 asd123

2 3 dfvghj

的方式它不更新右行创建一个新的尽管我使“多对一”属性为unique =“ true”?

提前致谢

参考方案

您必须清楚这种关系:是一对一还是多对一?

看起来像是多对一的单向关系。

这是带有注释的示例:

@Entity

@Table(name="PERSON")

public class Person {

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

private int id;

private String _email;

private String _pass;

//getters and setters

}

和另一类:

@Entity

@Table(name="ReqC2dmRegId")

public class ReqC2dmRegId {

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

private int id;

@ManyToOne

@JoinColumn(name = "PERSON_ID")

private Person person;

//getters and setters

}

页面加载而不是提交时发生struts验证 - java

请原谅我;我对Struts有点陌生。我遇到一个问题,即页面加载而不是我实际提交表单时发生了验证。我整天都在论坛上搜寻和搜寻,没有任何运气。我显然做错了一些事情,应该很容易确定,但是我还没有发现问题所在。这是我的struts.xml的片段:

以下的用途是什么:org.springframework.jdbc.core.JdbcTemplate org.springframework.jdbc.datasource.DataSourceTransactionManager org.springframework.jndi.JndiObjectFactoryBean

是否可以在Swing GUI上仅针对特定组件或组件集设置用于Synth外观的文件,而无需为其他任何组件进行更改? java参考方案 是的,有可能。将类型指定为“区域”,将其更改为“名称”,将值更改为由setName(“ componentName”)给定的特定名称;应用程序中的方法。添加这个

java 一对一的关系_与休眠一对一关系 - java相关推荐

  1. java护照号码校验_学无止境之小白学java……第001天

    学习主题:预科阶段 对应视频: http://www.itbaizhan.cn/course/id/18.html 对应作业: 1. 为什么需要学编程,什么样的人可以做程序员? 编程是现实逻辑的表达, ...

  2. java青蛙过河打字_趣味算法——青蛙过河(JAVA)

    青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...

  3. java -jar 指定端口_「Linux命令」-Java程序员需要掌握的10个命令

    作为服务端开发的同学,经常会与linux服务器打交道,一些用的命令必须要掌握. 1.top命令-观察服务端负载情况 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况 ...

  4. java面试题成都_成都汇智动力-java面试——多线程面试题

    原标题:成都汇智动力-java面试--多线程面试题 1.多线程有什么用?发挥多核CPU的优势 防止阻塞 便于建模 2.创建线程的方式继承Thread类 实现Runnable接口 至于哪个好,不用说肯定 ...

  5. java并发惊群_成都汇智动力-Java并发:其他(总结性的东西)

    原标题:成都汇智动力-Java并发:其他(总结性的东西) Java并发:其他(总结性的东西). 并发中的主要问题 并发基础主要解决的是可见性,有序性和原子性的问题,让不可控的进程/线程变得可以预测,可 ...

  6. 我的世界java版合成表_我的世界:Java版和基岩版的5个合成表差异,知道半数,老MC无疑。...

    "不要在云了,你这个云玩家!"不知道你没有没有因为某些原因被网友说成是MC的云玩家,我就听到过一个很冤枉的故事.一个已经玩了5年之久的基岩版玩家,被一个玩了一年Java版的玩家硬生 ...

  7. java rhino js类_让Rhino JS看Java类

    我正在玩 Rhino,我已经成功使用了stdlib中的Java类,但没有使用我编译的Java代码. 例如,这工作正常: print(new java.util.Date()); 但是使用NanoHTT ...

  8. java azure blob 查询_快速入门:适用于 Java 的 Azure Blob 存储客户端库 v8 | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 快速入门:使用 Jav ...

  9. java底层原理书籍_阿里面试题:Java中this和super关键字的底层实现原理

    知道的越多,不知道的就越多,业余的像一棵小草! 编辑:业余草 来源:https://www.xttblog.com/?p=5028 B 站:业余草 最近一个粉丝加我说,接到了阿里的面试,问问我阿里会面 ...

最新文章

  1. 代码打补丁的利器——diff和patch
  2. Python进行时间序列平稳检验ADFtest(Augmented Dickey-Fuller Unit Root Test)
  3. 工作空间从Windows转向fc8
  4. 简单排序——冒泡排序,选择排序,插入排序,对象排序
  5. Spring5参考指南:依赖注入
  6. 工作37:账号绑定逻辑复杂
  7. JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解...
  8. [Leetcode]第[43]题[JAVA][字符串相乘][字符串相加]
  9. 一文带你认识keepalived,再带你通关LVS+Keepalived!
  10. JZOJ 3455. 【NOIP2013模拟联考3】库特的向量(code)
  11. 【16】成对使用new和delete时要采取相同形式
  12. ubuntu学习日记--Lesson6:shell,bash,dash
  13. hdu acm 1010
  14. WDM驱动开发 电源管理
  15. H3C与阿里云网关建立IPSEC并启用BGP
  16. 一些蓝桥杯的简单模拟题目
  17. 应用该不该为视网膜显示屏而优化?这是个问题
  18. Fedora 17: 安装 perl-Tk
  19. 浅谈STM32的三种Boot模式
  20. myEclipse8.5注册码

热门文章

  1. 面试题:谈谈你对TCP的认识
  2. linux fcntl 设置阻塞,Linux fcntl函数设置阻塞与非阻塞
  3. 混凝土墙开洞_易县混凝土剪力墙切割常见问题
  4. alter table add column多个字段_利用Python将多个excel合并到一个文件中
  5. 电子科学与技术与计算机专业,计算机科学与技术专业和电子科学与技术专业,哪个好些?...
  6. Win11任务栏空白怎么办 Win11任务栏空白解决办法
  7. UC浏览器电脑版怎么开启免费WiFi
  8. C/C++如何快速区分指针数组|数组指针|函数指针|指针函数
  9. IE浏览器下如何低延迟播放RTSP或RTMP流
  10. SVN卸载,修复,等问题:依赖服务或组无法启动.(0x8007042c)解决之一