新手请教在EJB的主键中,我想定位到一个字符型的字段,那么hashCode,与equals应该怎么写呢??谢谢

时间:2021-11-12 13:21:31
hashCode,好象一定要返回int的值,那我怎么定位到字符型呢??
还有equals,谢谢。

请问覆盖这两个方法是为了什么???

6 个解决方案

#1


给你一个例子:
package noteExample;

import java.io.Serializable;

public class NotePK implements Serializable
{
public String noteId;

public NotePK(String value)
{
noteId = value;
}
public NotePK()
{
}

public String toString()
{
return noteId;
}
public int hashCode()
{
return noteId.hashCode();
}
public boolean equals(Object obj)
{
if(obj == null || !(obj instanceof NotePK))
{
return false;
}
else if(((NotePK)obj).noteId.equals(noteId))
{
return true;
}
else
{
return false;
}

}
}

#2


我觉得应这样写:
package noteExample;

import java.io.Serializable;

public class NotePK implements Serializable
{
public String noteId;

public NotePK(String noteID)
{
this.noteId = noteID;
}
public NotePK()
{
}

public String getNoteID()
{
return noteId;
}
public int hashCode()
{
return noteId.hashCode();
}
public boolean equals(Object obj)
{
if(obj == null || !(obj instanceof NotePK))
{
return false;
}
NotePK pk=(NotePK)obj;
                  return noteID.equals(pk.noteID);

}
}

#3


To buick555(王飞)  :
   你这里的:
 public String getNoteID()
{
return noteId;
}

有什么意义??

#4


这个是规范推荐的。具体我也没有好的解释!不好意思!
不过,具我分析,这是给容器返回一个唯一指定一个BEAN的标识。
我会再查的,给你一个答案。
还有,规范还规定不能在主键类中设置setXXX()方法,切记。
一旦你将一个主键与一个实体BEAN联系起来,就不能重用他了!
所以,根据这句话,我推测getXXX()方法是给容器做标识用的。

#5


这个是规范推荐的。具体我也没有好的解释!不好意思!
不过,具我分析,这是给容器返回一个唯一指定一个BEAN的标识。
我会再查的,给你一个答案。
还有,规范还规定不能在主键类中设置setXXX()方法,切记。
一旦你将一个主键与一个实体BEAN联系起来,就不能重用他了!
所以,根据这句话,我推测getXXX()方法是给容器做标识用的。

#6


这个是规范推荐的。具体我也没有好的解释!不好意思!
不过,具我分析,这是给容器返回一个唯一指定一个BEAN的标识。
我会再查的,给你一个答案。
还有,规范还规定不能在主键类中设置setXXX()方法,切记。
一旦你将一个主键与一个实体BEAN联系起来,就不能重用他了!
所以,根据这句话,我推测getXXX()方法是给容器做标识用的。

#1


给你一个例子:
package noteExample;

import java.io.Serializable;

public class NotePK implements Serializable
{
public String noteId;

public NotePK(String value)
{
noteId = value;
}
public NotePK()
{
}

public String toString()
{
return noteId;
}
public int hashCode()
{
return noteId.hashCode();
}
public boolean equals(Object obj)
{
if(obj == null || !(obj instanceof NotePK))
{
return false;
}
else if(((NotePK)obj).noteId.equals(noteId))
{
return true;
}
else
{
return false;
}

}
}

#2


我觉得应这样写:
package noteExample;

import java.io.Serializable;

public class NotePK implements Serializable
{
public String noteId;

public NotePK(String noteID)
{
this.noteId = noteID;
}
public NotePK()
{
}

public String getNoteID()
{
return noteId;
}
public int hashCode()
{
return noteId.hashCode();
}
public boolean equals(Object obj)
{
if(obj == null || !(obj instanceof NotePK))
{
return false;
}
NotePK pk=(NotePK)obj;
                  return noteID.equals(pk.noteID);

}
}

#3


To buick555(王飞)  :
   你这里的:
 public String getNoteID()
{
return noteId;
}

有什么意义??

#4


这个是规范推荐的。具体我也没有好的解释!不好意思!
不过,具我分析,这是给容器返回一个唯一指定一个BEAN的标识。
我会再查的,给你一个答案。
还有,规范还规定不能在主键类中设置setXXX()方法,切记。
一旦你将一个主键与一个实体BEAN联系起来,就不能重用他了!
所以,根据这句话,我推测getXXX()方法是给容器做标识用的。

#5


这个是规范推荐的。具体我也没有好的解释!不好意思!
不过,具我分析,这是给容器返回一个唯一指定一个BEAN的标识。
我会再查的,给你一个答案。
还有,规范还规定不能在主键类中设置setXXX()方法,切记。
一旦你将一个主键与一个实体BEAN联系起来,就不能重用他了!
所以,根据这句话,我推测getXXX()方法是给容器做标识用的。

#6


这个是规范推荐的。具体我也没有好的解释!不好意思!
不过,具我分析,这是给容器返回一个唯一指定一个BEAN的标识。
我会再查的,给你一个答案。
还有,规范还规定不能在主键类中设置setXXX()方法,切记。
一旦你将一个主键与一个实体BEAN联系起来,就不能重用他了!
所以,根据这句话,我推测getXXX()方法是给容器做标识用的。