
рдЖрдЬ рдореИрдВ рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд╡рд╣ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рдЦреЗрддреЛрдВ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирдореВрдирд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ; рдХрд┐рд╕реА рдХреЛ рднреА рдХрдИ рдХреЙрд▓рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЙрдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рддреЛ, рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд▓реЗрдЦрд╛рдВрдХрди рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рдЗрд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рдЗрдХрд╛рдИ рдореЗрдВ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдХрд┐рд╕рдиреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛, рдХрд┐рд╕рдиреЗ рдмрдирд╛рдпрд╛, рдХрдм рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдП, рдХрд┐рд╕рдиреЗ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрдк рд╕рдорд╛рди рд╕реЗрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирд╣реАрдВред рдирддреАрдЬрддрди, рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдПрдХ рд╣реА рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдирдП рдирд╛рдо рдкреИрджрд╛ рд╣реЛрддреЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛
рдпрд╣ рд╕рдорд╕реНрдпрд╛
@Embeddable рдирд┐рдХрд╛рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
package ru.kabit.entity.embeded; import javax.persistence.Embeddable; import java.util.Date; @Embeddable public class HistoryFields { private Long lastModifierId; private Long creatorId; private Date lastModifyDate; private Date createDate; }
рд╣рдо рдлрд╝реАрд▓реНрдб рд╕реЗ рдлрд╝реАрд▓реНрдб рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ, рдПрдХ
рдПрдВрдмреЗрдбреЗрдб рдкреНрд░реЙрдкрд░реНрдЯреА рдбрд╛рд▓реЗрдВред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рдирд╛ рдФрд░ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреЗрдЯреНрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХреНрд╕рдПрдордПрд▓, рдЬреЗрдПрд╕рдкреА рдореЗрдВ рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
package ru.kabit.entity; import ru.kabit.entity.embeded.HistoryFields; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Post { @Id @GeneratedValue private Long id; @Embedded private HistoryFields historyFields; }
рдЕрдЧрд░
HistoryFields рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдлрд╝реАрд▓реНрдб рднрд░рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ
HistoryFields рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рднрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрд╢рдХреНрдд рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐, рддрд░реНрдХ рд▓рд┐рдЦрддреЗ рд╕рдордп рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреЗ рдирд╛рдо рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди
@AttributeOverride рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ
рд▓рд╛рдн :
- рдЦреЗрддреЛрдВ рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рд╕рдореВрд╣ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд╝реАрд▓реНрдб рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рдХрднреА рднреА рдХрд┐рд╕реА рдХреЛ "рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ" рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
- рдЪрдпрдирд┐рдд рдбреЗрдЯрд╛ рдмрд┐рдирд╛ рдЙрдкрд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╣реИ
- рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдорд╛рдирджрдВрдб рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдВрдЧреЗред
- рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдРрд╕реЗ рдХрдИ рдХреНрд╖реЗрддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдиреБрдХрд╕рд╛рди :
- рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдлрд╝реАрд▓реНрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмреЗрдорд╛рдиреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ; рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗ
- рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╣рд╛рде рд╕реЗ рдЬреЗрдПрд╕рдкреА рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЖрдкрдХреЛ рд╕рдм рдХреБрдЫ рдбрдмрд▓-рдЪреЗрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреЗрдЯрд░реНрд╕ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдВрдмреЗрдбреЗрдб рдлрд╝реАрд▓реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛
рджреВрд╕рд░рд╛ рдЙрдкрд╛рдп
@MappedSuperclass рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ:
package ru.kabit.entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.MappedSuperclass; import java.util.Date; @MappedSuperclass public class HistoryEntity { @Id @GeneratedValue private Long id; private Long lastModifierId; private Long creatorId; private Date lastModifyDate; private Date createDate; }
рдЕрдм рдЦреЗрддреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╣реИ, рдФрд░ рдЬрдм рд╣рдо рдПрдХ рд╕рдорд╛рди рд╕реЗрдЯ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдмрд╕ рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:
package ru.kabit.entity; import javax.persistence.Entity; @Entity public class Table1 extends HistoryEntity { private Long otherFieldTable1; public Long getOtherFieldTable1() { return otherFieldTable1; } public void setOtherFieldTable1(Long otherFieldTable1) { this.otherFieldTable1 = otherFieldTable1; } }
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ
рд▓рд╛рдн :
- рдЪрдпрдирд┐рдд рдбреЗрдЯрд╛ рдмрд┐рдирд╛ рдЙрдкрд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╣реИ
- рдХрд┐рд╕реА рдХрд╛рд░реНрдпрд╢реАрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдлрд╝реАрд▓реНрдб рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХреБрдЫ рднреА рд░рд┐рдлрд▓реЗрдХреНрдЯрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдиреБрдХрд╕рд╛рди :
- рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдлрд╝реАрд▓реНрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмреЗрдорд╛рдиреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ; рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗ
- рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреЛрдИ рдмрд╣реБ рд╡рд┐рд░рд╛рд╕рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рдЗрдХрд╛рдИ рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ
рдирд┐рд╖реНрдХрд░реНрд╖
рдореИрдВрдиреЗ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рдЦреЗрддреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдмрд╛рд░-рдмрд╛рд░ рд╡рд░реНрдгрди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд▓реЗрдЦ рдЙрдкрдпреЛрдЧреА рд▓рдЧрд╛ рд╣реЛрдЧрд╛ред