java - JPA 2.0 OneToOne 映射引用属性

标签 java jakarta-ee jpa-2.0 one-to-one

是否可以在 OneToOne 关系中引用被引用实体中的单个属性

示例:

   @Entity
   public class Country {
    @Id
    private Long countryId;
   @Column(name="code")
   private String countryCode;
  ...
  } 

 @Entity
 public class City {

  @Id
  private Long cityId;

   @OneToOne
   @JoinColumn(name="countryId",referencedColumnName="cityId")
    @Column(name="code")
    private String countryCode;

}

通过此设置,我收到错误@Column(s) not allowed on a @OneToOne property。是否可以在 JPA 2.0 中以任何其他方式执行此操作

谢谢 桑杰

最佳答案

这是不可能的。您可以简单地为此类用例添加一个访问器,该访问器委托(delegate)给引用的实体:

public class City {
  public String getCountryCode() { 
    return null == country ? null : country.getCountryCode(); 
  }
}

关于java - JPA 2.0 OneToOne 映射引用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9789701/

相关文章:

java - 在 JSF 中使用实体

java - 使用 EclipseLink 在 @MappedSuperclass 基类上使用 @ElementCollection 和 @CollectionTable

java - Spring Data Jpa 选择新问题

java - 读取单列中包含多个值的 Excel 文件 - Java

java - 我的代码的任何部分都可以并行吗

java - PHP与Java之间的加解密

java - JNDI 资源名称附加了 __pm 。部署失败

jakarta-ee - Bean Validation API 中 javax.validation.Payload 的用例是什么?

java - 如何在java web应用程序中创建虚荣url?

jsf-2 - JSF Image servlet 不加载图像