使用hibernate 注解配置实体类的关联关系,在many-to-one,one-to-one关联中,一边引用自另一边的属性,如果属性值为某某的数据在数据库不存在了,hibernate默认会抛出异常。解决此问题,加上如下注解就可以了: @NotFound(action=NotFoundAction.IGNORE),意思是找不到引用的外键数据时忽略,NotFound默认是exception 下面贴出hibernate 注解的实例代码 @Entity @Table(name = "ICT_COMPUTER_LOCATION") public class IctComputerLocation { private static final long serialVersionUID = 1L; private Integer id; /** IDC编号 */ private String idcNum; private Integer ictBaseId; /** IctBase实体类 */ private IctBase ictBase; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "ID") public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(name = "IDC_NUM") public String getIdcNum() { return idcNum; } public void setIdcNum(String idcNum) { this.idcNum = idcNum; } @Column(name = "ICT_BASE_ID") public Integer getIctBaseId() { return ictBaseId; } public void setIctBaseId(Integer ictBaseId) { this.ictBaseId = ictBaseId; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "ICT_BASE_ID", referencedColumnName = "ID", unique = false, nullable = false, insertable = false, updatable = false) @NotFound(action=NotFoundAction.IGNORE) public IctBase getIctBase() { return ictBase; } public void setIctBase(IctBase ictBase) { this.ictBase = ictBase; }