大家好:有两个表A
{
id
name
...
rule_id
}B
{
id
Name
...
rule_id
}他们在数据库里没有任何关系,但是实际上他们是一对一的关系,根据rule_id 能确定。请问hibernate能否实现这种对应关系,使得查出了A对象,从A对象能得到B对象?
谢谢!
{
id
name
...
rule_id
}B
{
id
Name
...
rule_id
}他们在数据库里没有任何关系,但是实际上他们是一对一的关系,根据rule_id 能确定。请问hibernate能否实现这种对应关系,使得查出了A对象,从A对象能得到B对象?
谢谢!
解决方案 »
- linux下在后台得到<input>框值的奇怪问题
- core java 2第七版193页一句话难道了众多计算机老师
- 请教关于条码打印
- ireport+jasperreport 问题。常做报表的进来给咱解答下!
- 给分:江湖告急。。求SQL Server 2000 Driver for JDBC Service Pack 4 驱动程序
- jboss的mysql连接池测试提示错误:MySqlDS not bound,帮帮忙
- 请问用javaxmail发关邮件时出现NoSuchProviderExctption的原因?
- 痛哭流涕问:如何在SessionBean里面调用EntityBean???
- 请问怎样把JSP页面中List传给Form????
- maven多模块中springmvc注入service出错时报错,@org.springframework.b
- 讨论一下struts2
- hibernate怎么更新二级缓存
private String rule_id = "";@OneToOne(cascade = CascadeType.ALL, optional = false)
@PrimaryKeyJoinColumn(name = "rule_id", referencedColumnName = "rule_id")
private B b = null;
声明,我也没测试过,不知道是否能够生效;
import java.io.Serializable;import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;@Entity
@Table(name = "t_testa")
public class TestA implements Serializable
{
private static final long serialVersionUID = 5474359037731558807L; @Id
@Column(name = "id", length = 36, nullable = false)
private String id = ""; @Column(name = "name", length = 50, nullable = false)
private String name = ""; @OneToOne(cascade = CascadeType.ALL, optional = false)
@JoinColumn(name = "testa_id", referencedColumnName = "testb_id")
private TestB testB = null; public String getId()
{
return id;
} public void setId(String id)
{
this.id = id;
} public String getName()
{
return name;
} public void setName(String name)
{
this.name = name;
} public TestB getTestB()
{
return testB;
} public void setTestB(TestB testB)
{
this.testB = testB;
} @Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
} @Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
TestA other = (TestA) obj;
if (id == null)
{
if (other.id != null)
return false;
}
else if (!id.equals(other.id))
return false;
return true;
}
}
import java.io.Serializable;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;@Entity
@Table(name = "t_testb")
public class TestB implements Serializable
{
private static final long serialVersionUID = -5227555122162835236L; @Id
@Column(name = "id", length = 36, nullable = false)
private String id = ""; @Column(name = "name", length = 50, nullable = false)
private String name = ""; @Column(name = "testb_id", length = 36, nullable = false)
private String testb_id = ""; public String getId()
{
return id;
} public void setId(String id)
{
this.id = id;
} public String getName()
{
return name;
} public void setName(String name)
{
this.name = name;
} public String getTestb_id()
{
return testb_id;
} public void setTestb_id(String testbId)
{
testb_id = testbId;
} @Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
} @Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
TestB other = (TestB) obj;
if (id == null)
{
if (other.id != null)
return false;
}
else if (!id.equals(other.id))
return false;
return true;
}
}
测试通过
一般用many-to-one + unique