JPA Globalize

医院的名字根据 locale 不同而显示不同的值. 医院上的 locale 是一个虚拟属性, 用来接收参数.

借助 Hibernate 本身的对应关系应该怎么写注解呢? 谢谢!

@Entity  
@Data
@NoArgsConstructor  
@AllArgsConstructor  
@Builder  
public class Hospital {
    @Id  
    @GeneratedValue(strategy = GenerationType.IDENTITY)  
    private Long id;
    
    @Transient  
    private String locale = "zh-CN";  
    @OneToOne  
    @JoinColumns({  
        @JoinColumn(name = "id", referencedColumnName = "hospital_id"),  
          @JoinColumn(name = "locale", referencedColumnName = "locale"),  
    })  
    private HospitalTranslation translation;
}
@Entity  
@Data
@NoArgsConstructor  
@AllArgsConstructor  
@Builder  
public class HospitalTranslation {
    @Id  
    @GeneratedValue(strategy = GenerationType.IDENTITY)  
    private Long id;

    @NotNull
    private Long hospital_id;
    @NotNull
    private String locale;
}
阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题