Entity'deki Id'nin türünü öğrenme


Merhaba,

Bazı durumlarda kullanmış olduğunuz entitylerin id'sinin türünü öğrenme ihtiyacı duyulabilir. Genellikle de dinamik olarak entityleri çekiyor isek buna gereksinim duyarız. Bunun için Java'nın geliştiricilere kolaylık sağlaması için hali hazırda bulunan Reflection kütüphanesi bize yardımcı olacaktır.

İki tane sınıfımız var. Customer ve DiscountCode. Customer sınıfı Integer türünden bir Id'ye sahip ve DiscountCode sınıfı ise String türünden bir Id'ye sahip. Aşağıda görüldüğü üzere

Customer.class
public class Customer implements Serializable {
 private static final long serialVersionUID = 1L;
 @Id
 @Basic(optional = false)
 @Column(name = "CUSTOMER_ID")
 private Integer customerId;



DiscountCode.class
public class DiscountCode implements Serializable {
 private static final long serialVersionUID = 1L;
 @Id
 @Basic(optional = false)
 @Column(name = "DISCOUNT_CODE")
 private String discountCode;

Methodumuzu aşağıdaki gibi yazmamız yeterli olacaktır.
/**
 *
 * @author Omer Faruk KURT
 * @Created on date 13/01/2017 09:08:08 
 */
public class GetType {
    
    public static void main(String[] args) {
     
        
        
        System.out.println("customer:"+pkFieldType(Customer.class));
        System.out.println("code    :"+pkFieldType(DiscountCode.class));
      
    }
    
     public static String pkFieldType(Class clazz) {

        for (Field field : clazz.getDeclaredFields()) {
            Annotation[] annotations = field.getDeclaredAnnotations();
            for (Annotation annotation : annotations) {
                if (annotation.toString().contains("javax.persistence.Id")) {
                    return field.getType().toString();
                }
            }
        }
        return null;
    }

}



Sorunsuz javalı günler :)

Yorum Gönder

0 Yorumlar