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

Java持久性/ JPA:@Column与@Basic

曹季同
2023-03-14
问题内容

JPA中的@Column@Basic批注有什么区别?它们可以一起使用吗? 如果 他们可以一起使用吗?还是其中之一就足够了?


问题答案:
  • @Basic表示要保留属性,并且要使用标准映射。它具有允许您指定是否要延迟加载属性以及该属性是否为空的参数

  • @Column 允许您指定数据库中属性要保留到的列的名称。

如果您指定一个不带另一个,那么您将获得明智的默认行为,因此,除了特殊情况外,通常人们只使用一个。

因此,如果我们想要延迟加载属性并指定列名,我们可以说

 @Basic(fetch=FetchType.LAZY)
 @Column(name="WIBBLE")

如果我们需要默认的非懒惰行为,则只需@Column足够了。



 类似资料:
  • 这就是我的datasourcebean的样子

  • 问题内容: 到目前为止,我的偏好是始终使用EntityManager 来处理插入和更新。但是我还注意到,合并会在更新/插入之前执行其他选择查询,以确保数据库中不存在记录。 现在,我正在一个需要对数据库进行大量(批量)插入的项目。从性能的角度来看,在我绝对知道我一直在创建要持久化的对象的新实例的情况下,使用持久化而不是合并有意义吗? 问题答案: 它不是用一个好主意时,就足够了- 做了很多更多的工作。

  • 问题内容: 我想做这个列不能为null,但是当我在数据库中插入一个寄存器值null时,这允许我插入。我阅读了文档,但我不知道为什么不起作用。 谢谢 更新:我正在使用 Toplink 和java org.eclipse.persistence.eclipselink:2.4.2 。 问题答案: 我认为如果您使用EntityManager的实现生成模式,则会使用可为空的。我不知道是否也必须在持久化实体

  • 问题内容: 我正在开发Java桌面应用程序,并且对使用JavaFX非常感兴趣。我计划使用MVC架构,因为我对Java EE和MVC模型有一定的经验。 我想将数据存储在嵌入式derby数据库中,并使用Hibernate作为持久层,但是找不到关于使用hibernate和JavaFX实现MVC的出色教程。 我已经创建了持久性文件,但不确定如何使其与JavaFX一起使用。在Java EE中,我注入了EJB

  • JPA 3.0于2020年11月发布,我想大多数JPA提供商(Hibernate、EclipseLink、OpenJPA)仍然支持JPA 2.2。是否有迁移到新版本的计划?这将不是那么简单,因为,例如,顶级包已经更改(javax.persistence-

  • 是否有某种方法通过JPA持久化链接成员,或者我的方法本身是不正确的(Hateoas链接数据不应该持久化)。 谢谢。