2014-12-07 1 views
2

Как я могу отображать и изменять поля, которые фактически являются обернутыми классами.Типы пользователей JPA-карты с классами Wrapper

private UserId uid = new UserId(); 

Где UserId это класс завернуты внутри многих классов. Он принимает строку как Id , но ее эквивалентное поле в базе данных длинное.

Когда я комментирую его, JPA жалуется на тип и доступность полей.

мне нужно сказать JPA с помощью аннотаций

  1. Как получить доступ фактических полей, которые будут отображены в конце концов

  2. Очевидно, что не знает, как преобразовать его из строки долго, как сделать это?

Я новичок в JPA и Java и использую аннотации к полям.

Благодаря

Вот код

UserId.java

public class UserId extends CustomString { 
public UserId(String value) { 
    super(value); 
} 

CustomString.java

public abstract class CustomString extends ParentDomain { 

private String value; 

public CustomString(String value) { 
    if (value == null) { 
     throw new NullStringException(this.getClass().getName()); 
    } 
    this.value = value; 
} 
//Getters and Setters 
@Override 
public String toString() { 
    return this.value; 
} 

}

ParentDomain.java

public abstract class ParentDomain { 
// nothing 

}

То, что я сделал до сих пор

я создал геттер сеттеров с Long типом возвращаемого после преобразования из Long в строку я возвращаюсь Значение.

+0

Нам нужно увидеть еще какой-нибудь код, который, как мне кажется, похож на класс UserId? – holmis83

+0

JPA предоставляет AttributeConverter, чтобы вы могли сопоставить любой тип. Так в чем проблема с этим? –

+0

@NeilStockton Спасибо за комментарий. Я бы попытался создать его. Я знал об этом. –

ответ

0

Вы можете написать , который берет объект UserId и отображает его в столбце LONG.

+0

Спасибо за помощь. –