+1 امتیاز
قبل در برنامه نویسی توسط (23 امتیاز)
ویرایش شده قبل توسط
embedded و embeddable در hibernate به چه معنی هستند؟ و چه کاربرد هایی دارند؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

در Hibernate یک موجودیت می تواند درون یک موجودیت دیگر قرار بگیرد، مثلا وقتی فیلد های یک موجودیت بین چند موجودیت دیگر مشترک هستند می توان آنها را بصورت Embeddable تعریف کرد. کلاس Animal خصوصیات مشترک حیوانات را در خود دارد و می تواند Embeddable تعریف شود. در اینتصورت کلاس Animal قابلیت قرار گرفتن درون (Embedded) موجودیت های دیگر را دارد:

@Embeddable
public class Animal {

	@Column(name = "name")
	private String name;
	
	@Column(name = "location")
	private String location;

	public Animal(){
	}

	//getter and setter

}

حالا موجودیت های Lion و Elephant می توانند کلاس Animal را درون خود Embed کنند:

@Entity
@Table(name = "elephant")
public class Elephant {
	@Id
	@Column(name = "id")
	private int id;

	@Embedded
	@AttributeOverrides({ @AttributeOverride(name = "location", column = @Column(name = "place")) })
	private Animal animal;

	public Elephant(int id,Animal animal){
		this.id=id;
		this.animal=animal;
	}

	//getter and setter

}

موجودیت Elephant:

@Entity
@Table(name="lion")
public class Lion {
	@Id
	@Column(name = "id")
	private int id;

	@Embedded
	private Animal animal;

	public Lion(int id,Animal animal){
		this.id=id;
		this.animal=animal;
	}

	// getter and setter

}

از انوتیشن AttributeOverrides برای override کردن فیلد های کلاس Embeddable استفاده می شود.

اطلاعات بیشتر.

سوالات مشابه

0 امتیاز
1 پاسخ 377 بازدید
0 امتیاز
0 پاسخ 641 بازدید
+1 امتیاز
1 پاسخ 407 بازدید
0 امتیاز
1 پاسخ 298 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط masoud65 (27 امتیاز)
0 امتیاز
3 پاسخ 685 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
0 پاسخ 262 بازدید
0 امتیاز
1 پاسخ 403 بازدید
0 امتیاز
1 پاسخ 278 بازدید
0 امتیاز
2 پاسخ 1.5هزار بازدید
...