当前位置: 首页 > 面试题库 >

休眠-外键代替实体

胡鸿羲
2023-03-14
问题内容

目前,Hibernate允许我直接使用*对一关系定义的对象

entity1.getEntity2()

是否可以获取外键而不是对象?

我看到的当前方法是在映射中添加addint:

@JoinColumn(name="message_key")
@ManyToOne(targetEntity=Message.class,fetch=FetchType.LAZY)
private Message message;  //these lines currently exist

@Column(name="message_key")
private Long message_fk; //the idea is to add those 2 lines

是否有更好的方法来获取外键,或者这是唯一的方法?


问题答案:

是的,你可以这样做。您只需要清楚地告诉休眠状态,哪一个是应该维护的映射,如下所示:

@Column(name="message_key", updatable=false, insertable=false)
private Long message_fk;


 类似资料:
  • 问题内容: 什么是最佳解决方案? 制作视频的人相信 在许多情况下,hibernate过大 基本的sql是一种很好的语言,它可以使hibernate抽象化 我听说过其他一些ORM实现,例如 https://github.com/rufiao/persist http://ormlite.com/ http://www.simpleorm.org/ 我想听听他们如何比较,以及每个人的优缺点。 问题答案

  • 问题内容: 目前,Hibernate允许我直接使用*对一关系定义的对象 是否可以获取外键而不是对象? 我看到的当前方法是在映射中添加addint: 是否有更好的方法来获取外键,或者这是唯一的方法? 问题答案: 是的,你可以这么做。您只需要为hibernate清楚表明哪个是它应该维护的映射,如下所示:

  • 问题内容: 我有一个表,其中父对象具有可选的多对一关系。问题在于该表已设置为默认将fkey列设置为0。 选择时,使用fetch =“ join”等-fkey的默认值0被用来反复尝试从另一个表中选择ID0。当然这不存在,但是我怎么能告诉Hibernate将0的值与NULL相同- 在获取不存在的关系时不循环20多次以上? 问题答案: 我能够通过创建一个id- long类型来解决此问题,该类型扩展了内置

  • 问题内容: 我必须与Hibernate合作,但我不确定如何解决此问题,我有2个具有1..n关系的表,如下所示: 如何使用Hibernate进行管理? 我不知道如何声明将包含主键一部分的外键。 我的数据库架构是从Hibernate模型生成的。 问题答案: 我找到了解决此问题的两种方法。 第一个是一种解决方法,没有第二个那么整洁。 将实体的主键定义为包含,和的复合键,首先将假定为主键的内容定义为唯一约

  • 问题内容: 我有一个Hibernate的服务方法,例如:。securityId2由用户传递。每个SecurityContact与一个Contact有多对一的关系,因此Hibernate在运行此查询时会自动调用联接。但是,Hibernate始终运行的联接是内部联接,因此无法正常运行。有没有办法强迫Hibernate在内部生成左外部联接?这是SecurityContact类的代码: 问题答案: 尝试多

  • 问题内容: 我正在尝试使我的@OneToMany和@ManyToOne关系正确。 第1类: 第2类: 当我加载或保存新记录时,这种关系似乎运行良好: 但是,当我尝试更新该记录时,它将尝试将IdeaProfileId设置为null: 当我调试时,我可以看到IdeaProfileId确实在音高对象上设置了… 仅供参考,我不是直接更新从数据库加载的原始对象。这些域映射到UI更新的Model类。因此,在保