জাভাতে ইউনিক কন্সট্রেন্ট টীকা


168

আমার একটি জাভা বিন রয়েছে। এখন, আমি নিশ্চিত হতে চাই যে মাঠটি অনন্য হওয়া উচিত।

আমি নিম্নলিখিত কোড ব্যবহার করছি:

@UniqueConstraint(columnNames={"username"})
public String username;

তবে আমি কিছুটা ত্রুটি পাচ্ছি:

@UniqueConstraint is dissallowed for this location

অনন্য সীমাবদ্ধতাগুলি ব্যবহার করার উপযুক্ত উপায় কী?

দ্রষ্টব্য: আমি প্লে ফ্রেমওয়ার্ক ব্যবহার করছি।


15
"তবে কিছুটা ত্রুটি পাচ্ছি।" প্রশ্নটিতে আপনি কী ত্রুটি পেয়ে যাচ্ছেন তা সর্বদা নির্দিষ্ট করুন। আপনার কাছে প্রাসঙ্গিক তথ্য রয়েছে যা আমাদের সমস্যা সমাধানে খুব ভাল সহায়তা করতে পারে - এটি নিজের কাছে রাখবেন না।
জন স্কিটি

@Id টীকাটি ব্যবহার করা কি সম্ভব হবে?
Albinoswordfish

উত্তর:


413

কোনও ক্ষেত্রের মানটি অনন্য তা নিশ্চিত করতে আপনি লিখতে পারেন

@Column(unique=true)
String username;

@ ইউনিককনস্ট্র্যান্ট টীকাগুলি টেবিল স্তরে একাধিক অনন্য কীগুলি টীকায়িত করার জন্য, যার কারণে আপনি যদি কোনও ক্ষেত্রে এটি প্রয়োগ করার সময় ত্রুটি পান।

তথ্যসূত্র (জেপিএ টপলিংক):


16
এটি গুরুত্বপূর্ণ যে লক্ষণীয় যে এটি কেবলমাত্র যদি আপনি
জেপিএকে

118

আপনি নিম্নলিখিত বাক্য গঠন সহ শ্রেণি পর্যায়ে ব্যবহার করতে পারেন

@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames={"username"})})
public class SomeEntity {
    @Column(name = "username")
    public String username;
}

41

আমি বর্তমানে হাইবারনেট এবং জেপিএ ২.০ টীকা সহ প্লে ফ্রেমওয়ার্কটি ব্যবহার করছি এবং এই মডেলটি সমস্যা ছাড়াই কাজ করে

@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames = {"id_1" , "id_2"})})
public class class_name {

@Id
@GeneratedValue
public Long id;

@NotNull
public Long id_1;

@NotNull
public Long id_2;

}

আশা করি এটি সাহায্য করেছে।


20

দ্রষ্টব্য: কোটলিনে টীকাগুলিতে অ্যারেগুলি ঘোষণার জন্য সিনট্যাক্স এর arrayOf(...)পরিবর্তে ব্যবহার হয়{...}

@Entity
@Table(uniqueConstraints=arrayOf(UniqueConstraint(columnNames=arrayOf("book", "chapter_number"))))
class Chapter(@ManyToOne var book:Book,
              @Column var chapterNumber:Int)

দ্রষ্টব্য: কোটলিন ১.২ অনুসারে এর [...]সিনট্যাক্সটি ব্যবহার করা সম্ভব যাতে কোডটি আরও সহজ হয়ে যায়

@Entity
@Table(uniqueConstraints=[UniqueConstraint(columnNames=["book", "chapter_number"])])
class Chapter(@ManyToOne var book:Book,
              @Column var chapterNumber:Int)

13

ওয়ে 1:

@Entity

@Table(name = "table_name", uniqueConstraints={@UniqueConstraint(columnNames = "column1"),@UniqueConstraint(columnNames = "column2")})

- এখানে কলাম 1 এবং কলাম 2 পৃথকভাবে অনন্য প্রতিবন্ধক হিসাবে কাজ করে। উদাহরণস্বরূপ: যদি কোনও সময় কলাম 1 বা কলাম 2 এর মান মেলে তবে আপনি UNIQUE_CONSTRAINT ত্রুটি পাবেন।

ওয়ে 2:

@Entity

@Table(name = "table_name", uniqueConstraints={@UniqueConstraint(columnNames ={"column1","column2"})})

- এখানে কলাম 1 এবং কলাম 2 উভয় সম্মিলিত মান অনন্য বাধার হিসাবে কাজ করে


4
   @Entity @Table(name = "stock", catalog = "mkyongdb",
   uniqueConstraints = @UniqueConstraint(columnNames =
   "STOCK_NAME"),@UniqueConstraint(columnNames = "STOCK_CODE") }) public
   class Stock implements java.io.Serializable {

   }

শুধুমাত্র সম্মিলিত কী তৈরির জন্য ব্যবহৃত অনন্য বাধা, যা অনন্য হবে t এটি টেবিলটিকে অনন্য হিসাবে সংযুক্ত প্রাথমিক কী হিসাবে উপস্থাপন করবে।


3

আপনি টেবিলের সম্মিলিত প্রাথমিক কী এর জন্য ক্লাস স্তরে @ ইউনিক কনস্ট্রেন্ট ব্যবহার করতে পারেন। উদাহরণ স্বরূপ:

 @Entity
 @Table(name = "PRODUCT_ATTRIBUTE", uniqueConstraints = {
       @UniqueConstraint(columnNames = {"PRODUCT_ID"}) })

পাবলিক ক্লাস প্রোডাক্টঅ্যাট্রিবিউট}


1

বৈশিষ্ট্য ঘোষণার ঠিক উপরে অনন্য টীকাগুলি রাখা উচিত। ইউনিককন্ট্রেন্টস ডেটা ক্লাস ঘোষণার উপরে @ টেবিল টীকাতে যান। নিচে দেখ:

@Entity
@Table(uniqueConstraints= arrayOf(UniqueConstraint(columnNames = arrayOf("col_1", "col_2"))))
data class Action(
        @Id @GeneratedValue @Column(unique = true)
        val id: Long?,
        val col_1: Long?,
        val col_2: Long?,
)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.