一:一对一
1.单向(X-->Y)
package com.xs;
public class X {
private Y y;
public Y getY() {
return y;
}
public void setY(Y y) {
this.y = y;
}
}
package com.xs;
public class Y {
}
2.双向
package com.xs;
public class X {
private Y y;
public Y getY() {
return y;
}
public void setY(Y y) {
this.y = y;
}
}
package com.xs;
public class Y {
private X x;
public X getX() {
return x;
}
public void setX(X x) {
this.x = x;
}
}
二:多对一
1.单向(X-->Y)
package com.xs;
public class X {
private Y y;
public Y getY() {
return y;
}
public void setY(Y y) {
this.y = y;
}
}
package com.xs;
public class Y {
}
单向多对一与单向一对一的模型是一样的,单向一对一是单向多对一的特殊情况。
2.双向
package com.xs;
public class X {
private Y y;
public Y getY() {
return y;
}
public void setY(Y y) {
this.y = y;
}
}
package com.xs;
import java.util.HashSet;
import java.util.Set;
public class Y {
private Set<X> xs = new HashSet<X>();
public Set<X> getXs() {
return xs;
}
public void setXs(Set<X> xs) {
this.xs = xs;
}
}
三:一对多
1.单向(X-->Y)
package com.xs;
import java.util.HashSet;
import java.util.Set;
public class X {
private Set<Y> ys = new HashSet<Y>();
public Set<Y> getYs() {
return ys;
}
public void setYs(Set<Y> ys) {
this.ys = ys;
}
}
package com.xs;
public class Y {
}
2.双向
package com.xs;
import java.util.HashSet;
import java.util.Set;
public class X {
private Set<Y> ys = new HashSet<Y>();
public Set<Y> getYs() {
return ys;
}
public void setYs(Set<Y> ys) {
this.ys = ys;
}
}
package com.xs;
public class Y {
private X x;
public X getX() {
return x;
}
public void setX(X x) {
this.x = x;
}
}
四:多对多
1.单向(X-->Y)
package com.xs;
import java.util.HashSet;
import java.util.Set;
public class X {
private Set<Y> ys = new HashSet<Y>();
public Set<Y> getYs() {
return ys;
}
public void setYs(Set<Y> ys) {
this.ys = ys;
}
}
package com.xs;
public class Y {
}
单向多对多与单向一对多的模型是一样的。
2.双向
package com.xs;
import java.util.HashSet;
import java.util.Set;
public class X {
private Set<Y> ys = new HashSet<Y>();
public Set<Y> getYs() {
return ys;
}
public void setYs(Set<Y> ys) {
this.ys = ys;
}
}
package com.xs;
import java.util.HashSet;
import java.util.Set;
public class Y {
private Set<X> xs = new HashSet<X>();
public Set<X> getXs() {
return xs;
}
public void setXs(Set<X> xs) {
this.xs = xs;
}
}
总结:单向关联是我中有你,你中无我;双向关联是我中有你,你中有我。