我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > Hibernate中使用复合主键注意规则
总共48086条微博

动态微博

查看: 778|回复: 0

Hibernate中使用复合主键注意规则

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-05-19 15:29:59 |只看该作者 |倒序浏览
    使用复合主键的实体类必须实现Serializable接口。
    , j! L  m6 ^6 O6 p7 X" M  2. 使用复合主键的实体类必须重写equals和hashCode方法。
    " q. ~8 H2 ~2 D9 U' {5 g  o/*实体类,使用复合主键必须实现Serializable接口*/5 J2 f6 v% K( ^4 z
    1. public class People implements Serializable
      5 F1 }& ~* z$ _! {; H* {  [
    2. {* D% g6 B$ f" M& R0 h
    3.    private static final long serialVersionUID = -4888836126783955019L;
      & z# u' J' d1 W  E9 a& V
    4.    2 ^+ x2 z/ |+ T. @4 E
    5.    private String id;& W; Q6 U; B7 X1 b4 o3 f7 S! x
    6.    private String name;. Q+ |! W- X. Z- ?6 M8 W7 I8 o" _
    7.    private int age;
      7 c/ p5 Z5 K+ D. N) y
    8.    
      8 G% ]9 ~. L% S
    9.    public People()4 Y, l. {1 d1 U4 o+ L7 K/ }1 a. g5 m) N
    10.    {- ^2 |5 S; V2 b5 W
    11.       
      " X6 F7 l/ k+ ?0 a+ ^- Q
    12.    }0 |7 M! W" `4 c. L% h, b5 J

    13. - v! T. K) k8 v4 h! Y# N4 O
    14.    public String getId()
      8 h7 b1 l; B, P( v' i
    15.    {0 ?, h( n# r$ p- {; q* H( B& n
    16.        return id;' f6 F4 c( K3 W7 \; ?4 w3 b+ Q' L
    17.    }
      # V/ [9 s1 R: d

    18. + H1 R) B" y2 D  y- Q
    19.    public void setId(String id)
      ; n0 |5 P2 N! h$ s7 W
    20.    {
      * D  q3 i9 w1 b- m2 E8 V0 V6 x
    21.        this.id = id;3 o" J0 E. \" K- O! S1 {/ I
    22.    }4 M2 P- }4 ~  Y- d5 u0 c& `4 W
    23. 8 U4 f) }0 W4 H" E: r7 }" P# S" s( ~
    24.    public String getName()
      . o5 b. u4 L: L
    25.    {- r& p/ L" V. ]5 P& n: m
    26.        return name;
      8 [: D2 _) w6 r8 V* M8 c: \
    27.    }
      % \# ~: B( f7 _7 \

    28. 3 D, P& V- T; g
    29.    public void setName(String name)7 f" a' u0 P. o; I# E8 J
    30.    {; }* s5 m- R  c$ E$ d5 D$ _
    31.        this.name = name;
      6 W/ ]' O2 W  F/ H& m5 y6 H- p3 f8 F
    32.    }
      + h/ K  r+ {8 c. L; r
    33. + n/ O$ [$ j/ \1 `8 l
    34.    public int getAge()
      + h; o; B+ M4 N+ e
    35.    {  s! \8 b9 D% ~
    36.        return age;
      : {+ q7 k) }8 n. H4 j5 e: m
    37.    }
      # `( {& G4 w/ c* E: W. f2 z
    38. 8 P# ]% b" S% r8 p, K
    39.    public void setAge(int age)
      * U& m; n. G9 R9 M1 L! v8 j. o
    40.    {
      $ s& @5 I2 j% G) d
    41.        this.age = age;6 t/ v9 l' s% m+ o
    42.    }0 k4 X2 P1 ^: ^" ?

    43. 6 k$ t5 s/ O7 t" N
    44.    @Override) z7 e- U' O, n
    45.    public int hashCode()
      : u& c% j) F  h* Y7 C: @: M9 q
    46.    {1 z  b3 ^4 @5 ~
    47.        final int prime = 31;
      6 O0 G5 j& Z$ e9 |( d- N: M
    48.        int result = 1;
      5 Y, M: P0 I2 J% i) v
    49.        result = prime * result + ((id == null) ? 0 : id.hashCode());% {# p# k( q& a- x0 l( ~
    50.        result = prime * result + ((name == null) ? 0 : name.hashCode());
      # W& k. w9 Y7 g( S4 H, K
    51.        return result;5 \9 L+ D+ W/ R7 Z/ f
    52.    }
      , @7 G& ~6 R) F/ M/ u# k
    53. , }/ Q0 G; D5 _0 t
    54.    @Override' U0 r; r; T. J2 G. O  ?
    55.    public boolean equals(Object obj)
      ! l' l. N9 A6 _' R* q" @
    56.    {7 a* f1 T( H) C/ t$ ~
    57.        if (this == obj)
      ' X+ j* f/ G  [; P) U
    58.            return true;
      6 N2 r2 B, y3 D4 a$ s2 o, M) A
    59.        if (obj == null)% p! k2 j( I! x# _
    60.            return false;! R1 P& k0 B9 q/ s# D1 f. e; g/ Z
    61.        if (getClass() != obj.getClass())% r2 A: }! I7 |* P
    62.            return false;; @' _; f) j. `# w
    63.        People other = (People) obj;
      , W! g" c9 f6 I) D
    64.        if (id == null)9 m$ |1 z) J8 v
    65.        {
      % U9 V( C# e& t0 K; `+ x1 q1 `
    66.            if (other.id != null)
      7 K; k9 X6 c" @; C( H- D
    67.                return false;# Y( U6 G+ R7 N5 G$ W# H
    68.        }
      8 c8 N. H; D0 b* C9 c) h
    69.        else if (!id.equals(other.id))
      * K$ j$ `0 ?8 T, s
    70.            return false;- a- I" T" U' g5 J/ P" @" N
    71.        if (name == null)
      6 C$ y. q+ J6 v6 [* a
    72.        {
      1 ]* U/ g3 s1 Z- C1 M- i2 d$ s
    73.            if (other.name != null); h8 i" [$ y( z- r! i
    74.                return false;0 Y* p2 Z8 T% g9 Q8 R7 _% ~6 D
    75.        }
      ! v) w6 s% k; f0 N7 R- f+ g& p) r
    76.        else if (!name.equals(other.name))
      ) k0 J8 x; p/ ]3 G3 ?
    77.            return false;
      3 [3 y* g0 J2 R, w( c# [
    78.        return true;6 r3 M/ L4 I: j* m- F% |
    79.    }5 \/ n; {" n/ J* H; X9 v, V
    80. }
    复制代码

    7 P) N+ {& L" o# ^( P, U! w) J5 A+ t$ Y
    : {* d, L7 _8 ~; _8 [8 n) ]

    / P3 S4 v- P6 s" b0 N  }

    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表