三张表A、B、C,主键分别是A_ID、B_ID、C_ID,A表里面有一个字段TYPE(String)跟一个字段CONNECT_ID(Long),TYPE字段的值有两种,分别是CONNECT_B跟CONNECT_C。如果TYPE为CONNECT_B,那么A表中的字段CONNECT_ID就对应B表中的B_ID。
如果TYPE为CONNECT_C,那么A表中的字段CONNECT_ID就对应C表中的C_ID。实际表中B_ID跟C_ID是一样的,下面是我在A实体类中的注解,请大家指教下,B跟C实体类中用注解什么吗?@Column(name = "CONNECT_ID")
private Long connectId;//@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONNECT_ID", nullable = true,referencedColumnName="B_ID")
private B b;@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONNECT_ID", nullable = true,referencedColumnName="C_ID")
private C c;
在线等。求解
如果TYPE为CONNECT_C,那么A表中的字段CONNECT_ID就对应C表中的C_ID。实际表中B_ID跟C_ID是一样的,下面是我在A实体类中的注解,请大家指教下,B跟C实体类中用注解什么吗?@Column(name = "CONNECT_ID")
private Long connectId;//@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONNECT_ID", nullable = true,referencedColumnName="B_ID")
private B b;@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONNECT_ID", nullable = true,referencedColumnName="C_ID")
private C c;
在线等。求解
嗯,我也想过这样,不过项目里有个地方已经这样用了,只是有一点不一样,很好,现在是搞定了,具体问题怎么说呢,IDEA缓存,还有TOMCAT可能有问题。。反正换了个TOMCAT然后取消了IDEA的TOMCAT war就搞定了
那我来顶一下吧。其实我觉得你不应该在A表的一个字段同时加B和C的ID。你还不如在B和C表里面加A的ID。然后关联。
这样就可以直接在A对象中引入B和C了。