此时,我们的项目中有几个Hibernate对象类,如下所示:
package org.carl.recordkeeper.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Id;
public class BstRecordPK implements Serializable
{
// ------------------------------ FIELDS ------------------------------
private String bst;
private Integer instbit;
// --------------------- GETTER / SETTER METHODS ---------------------
@Id
@Column( name = "BST", nullable = false, length = 1 )
public String getBst()
{
return bst;
}
public void setBst( String bst )
{
this.bst = bst;
}
@Id
@Column( name = "INSTBIT", nullable = false )
public Integer getInstbit()
{
return instbit;
}
public void setInstbit( Integer instbit )
{
this.instbit = instbit;
}
// ------------------------ CANONICAL METHODS ------------------------
@Override
public boolean equals( Object o )
{
if ( this == o )
{
return true;
}
if ( o == null || getClass() != o.getClass() )
{
return false;
}
BstRecordPK that = (BstRecordPK)o;
if ( bst != null ? !bst.equals( that.bst ) : that.bst != null )
{
return false;
}
if ( instbit != null ? !instbit.equals( that.instbit ) : that.instbit != null )
{
return false;
}
return true;
}
@Override
public int hashCode()
{
int result = instbit != null ? instbit.hashCode() : 0;
result = 31 * result + ( bst != null ? bst.hashCode() : 0 );
return result;
}
}我们还有一个重复的代码检查器,当我们创建一个新的Hibernate类时,它一直在运行,因为其中一个get/set对匹配了另一个类中的内容(带有外键的数据库表)。有没有一种方法可以减少重复的代码,并保持Hibernate的快乐呢?我考虑过使用一个基类,但并不是所有的数据库表中都有一个列。
发布于 2014-11-13 17:25:33
代码复制警告:用于显示复制的代码段,通常使用复制和粘贴方式生成。复制代码将降低可维护性,并可能导致安全问题。
如果sonarqube向我显示重复警告,我将仔细查看fode的部分,并确定这是否为假阳性,因为许多pojos将共享一些代码,比如getId() { return id; },即使retrn类型不同,或者我的程序员只是重新实现或复制了一个部分。
我强烈建议不要减少你们这些实体。这只会导致争论。
但是,如果您真的为代码二义性检测限制而烦恼,您可以尝试使用@MappedSuperClass。
https://stackoverflow.com/questions/26914438
复制相似问题