当前位置: 首页 > 知识库问答 >
问题:

映射实现接口的两个类之一

易奇希
2023-03-14

类具有可以是两种类类型之一的属性,这就是为什么我试图创建类类型实现的接口

@Entity
@Table(name = "users")
public class User{  
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long userID;
@Column(name="email")
private String email;
@OneToOne(mappedBy = "user")
private Login login;
... getters/setters

@MappedSuperclass
public interface Login {
   User user = new User();
}

@Entity
@Table(name = "user_logins_social")
@IdClass(UserLoginSocialID.class)
public class UserLoginSocial implements Login{      
    @OneToOne
    @JoinColumn(name="uid")
    private User user;
...

@Entity
@Table(name = "user_logins_native")
public class UserLoginNative implements Login{
  @OneToOne
  @JoinColumn(name="uid")
private User user;
...

所以我不能使用目标实体,因为这两个类都可以使用。下面是错误堆栈:org.hibernate。AnnotationException:model.User中的未知mappedBy。登录时,引用的属性未知:model.login.user。请帮帮我

共有1个答案

蒙墨竹
2023-03-14

无法在推断面上映射或查询。

@MappedSuperclass应该可以使用抽象类和类。

请检查:wikihttp://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#Interfaces

@MappedSuperclass 
public abstract class User{  
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long userID;

@Column(name="email")
private String email;

@OneToOne(mappedBy = "user")
private Login login;

// ... getters/setters

@Entity
@Table(name = "login")
public class Login{      
    @OneToOne
    private User user;
}

@Entity
@Table(name = "user_logins_social")
@IdClass(UserLoginSocialID.class)
public class UserLoginSocial extends User{      
    //...
}

@Entity
@Table(name = "user_logins_native")
public class UserLoginNative extends User{
  //...
}
 类似资料:
  • 映射容器端口到宿主主机的实现 默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器。 容器访问外部实现 容器所有到外部网络的连接,源地址都会被 NAT 成本地系统的 IP 地址。这是使用 iptables 的源地址伪装操作实现的。 查看主机的 NAT 规则。 $ sudo iptables -t nat -nL...Chain POSTROUTING (policy ACCEP

  • 嗨,到目前为止,我已经能够在简单的类之间进行映射了。现在我必须在接口之间进行映射。假设我有两个接口,其中许多类实现了这些接口。由于我没有了解如何做,我已经映射到特定类型的接口a。现在我需要做反向映射,其中属性可能在子类中,如何在这种情况下做反向映射。我尝试了@ inheritaninverseconfigurationin标签,但没有成功。< br >如果我能得到一些代码片段来理解,而不是阅读描述

  • 我是个新手,所以请不要介意我的问题是愚蠢的 我有一个实现两个接口的类 我正在上下文类中定义bean对象,如下所示:

  • 本文向大家介绍Docker端口映射的实现,包括了Docker端口映射的实现的使用技巧和注意事项,需要的朋友参考一下 docker容器在启动的时候,如果不指定端口映射参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。 亦可使用Dockerfile文件中的EXPOSE指令来配置。 端口映射可使用-p、-P来实现: -p指定要映射的端口,一个指定端口上只可以绑定一个容器 -P将容器内部开放的

  • 我有两个地图,键为整数,值为双倍。 我想创建第三个按键排序的映射,值将是两个映射的双精度列表。 地图1: Map2: 最终地图: 如上所述,如果一个地图中的一个键在另一个地图中丢失,则另一个地图的最终地图中的值应默认为0.00 我可以使用putAll方法将所有键放入第三张地图。但如何按照我的意愿设定这些值呢? 感谢阅读!

  • 我有两个docker容器希望作为连接工作。一个docker实例(instance1)与客户端连接,另一个docker实例(instance2)希望与instance1连接。它主要做的是当客户端向实例1发送请求时,instatnce1希望调用instance2服务并获得响应。然后将其传递给客户端。 目前,我正在使用以下docker命令来运行docker图像 第一期 此实例具有服务http://loc