দয়া করে জেপিএ @ কলামের টীকাটি উল্লেখ করে সন্নিবেশযোগ্য = মিথ্যা এবং আপডেটযোগ্য = মিথ্যা সম্পর্কে ব্যাখ্যা করুন


151

যদি কোনও ক্ষেত্রটি টীকা দেওয়া হয় insertable=false, updatable=false, তার অর্থ এই নয় যে আপনি মান সন্নিবেশ করতে পারবেন না বা বিদ্যমান মানটি পরিবর্তন করতে পারবেন না? আপনি এটি কেন করতে চান?

@Entity
public class Person {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToMany(mappedBy="person", cascade=CascadeType.ALL)
    private List<Address> addresses;
}

@Entity
public class Address {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @ManyToOne
    @JoinColumn(name="ADDRESS_FK")
    @Column(insertable=false, updatable=false)
    private Person person;
}

উত্তর:


121

আপনি যখন সেই প্রশ্নে সম্পর্কিত সত্তা তৈরি / আপডেট করার দায়িত্ব বর্তমান সত্তায় নেই তখন আপনি তা করবেন। যেমন আপনার একটি Personএবং একটি আছে Address। আপনি সত্তার সত্তার সাথে সম্পর্কের সাথে যুক্ত insertable=false, updatable=falseকরতে চাইবেন কেবল কারণ এটি তৈরি বা আপডেট করা সত্তার দায়িত্ব নয় । এটি অন্য রাস্তা।@OneToManyPersonAddressAddressPerson


এটি insertable=false,updatable=falseসম্পর্কের দিকগুলির একটিতে সংজ্ঞা দেওয়া বোঝায় ।
BalusC

3
আপনি বলছেন যে আপডেটেবল = পার্সোন এ মিথ্যা দিয়ে এটি ঠিকানা আপডেট করার সময় পার্সন.নামের আপডেট করা অক্ষম করবে (এটি ক্যাসকেডের উদ্দেশ্য হিসাবে আমি একমত নই)। এছাড়াও আপনি বলছেন যে @ কলাম সংজ্ঞাটি তার বিদেশী কী (ব্যক্তি) এবং যখন এটি বিদেশী কী (যখন আপডেটিং অক্ষম করার জন্য কোনও রেফারেন্সড সত্তা নেই) তখন কিছু আলাদা করে does হালনাগাদযোগ্য জাভাদোক পড়ার মাধ্যমে আমি বলব যে এটি একবার স্থির করা থাকলে প্রদত্ত ঠিকানার জন্য ব্যক্তি পরিবর্তন করতে অক্ষম হবে। আপনি দয়া করে ব্যাখ্যা করতে পারেন?

8
আমার মনে হয় তুমি বলতে ... to the @ManyToOne relationship with the ...চাচ্ছো ??
মার্টিন কনেকেনি

111

সংজ্ঞাটি insertable=false, updatable=falseকার্যকর যখন আপনার কোনও সত্তায় একাধিকবার ক্ষেত্রের মানচিত্রের প্রয়োজন হয় সাধারণত:

এটি আইএমও কোনও শব্দার্থক জিনিস নয়, তবে অবশ্যই প্রযুক্তিগত বিষয়।


15
আমি দৃ strongly়ভাবে বিশ্বাস করি যে গৃহীত উত্তরটির চেয়ে এই উত্তরটি আরও ভাল। গৃহীত উত্তরটি অনুভূতি প্রকাশ করে যে সন্নিবেশযোগ্য / আপডেটযোগ্য বৈশিষ্ট্য সম্পর্কিত সত্তা তৈরি / আপডেটের সাথে সম্পর্কিত, যখন এই বৈশিষ্ট্যগুলির পিছনে আসল উদ্দেশ্যটি বর্তমান সত্তায় কলামের সন্নিবেশ / আপডেট প্রতিরোধ করা। সম্পর্কিত সত্তা তৈরি / আপডেট ম্যাপিং টীকা ক্যাসকেড বৈশিষ্ট্য দ্বারা মোকাবেলা করা হয়।
জয়ন্ত

25

আমি বালুসসি এবং পাস্কাল থিভেন্টের অন্য সাধারণ ব্যবহারের উত্তরগুলিতে যুক্ত করতে চাইinsertable=false, updatable=false :

কোনও কলামটি বিবেচনা করুন যা কোনও আইডি নয় তবে কিছু ধরণের ক্রম সংখ্যা । সিক্যুয়েন্স নম্বর গণনা করার দায়িত্ব অবশ্যই প্রয়োগের অন্তর্ভুক্ত নয়।

উদাহরণস্বরূপ, সিকোয়েন্স নম্বরটি 1000 দিয়ে শুরু হয় এবং প্রতিটি নতুন সত্তার জন্য একটি করে বাড়ানো উচিত। এটি সহজেই সম্পন্ন হয় এবং খুব যথাযথভাবে তাই ডাটাবেসে, এবং এই জাতীয় ক্ষেত্রে এই কনফিগারেশনগুলি বোঝা যায়।


1
সিকোয়েন্সগুলিও জেপিএ দ্বারা সমর্থিত, যাতে আপনি জেপিএ টীকাগুলির সাথেও আপনার ক্রমটি সংজ্ঞায়িত করতে পারেন।
Eis

8

অন্য একটি উদাহরণ "তৈরি করা" কলামে থাকবে যেখানে আপনি ডেটাবেসটিকে তারিখ তৈরির পরিচালনা করতে চান


হাইবারনেট একটি আপডেটযোগ্য = মিথ্যা টীকায়নের ভিত্তিতে আপডেটগুলি ব্লক করার কথা? আমার জেপিএ সংগ্রহস্থল পরীক্ষায় এই টীকা সহ একটি তৈরি করা_ কলাম অভিযোগ ছাড়াই আপডেটগুলি গ্রহণ করে।
খ্রিস্টমটাউন

1
@ ক্রিসিনমটাউন ইক্লিপসেলিংক এই স্কোলে কলামটি মোটেই অন্তর্ভুক্ত করবে না। আমি আশা করি হাইবারনেট
জাকেন এই’’র
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.