В моем проекте я использовал отображение «один-ко-многим». Я сохранил список кликов для каждого пользователя. Но когда я получаю список, вызывая метод getClicks(), Hibernate возвращает список в другом формате. Что-то вроде этого.Hibernate One-to-Many Mapping, распечатываемые списки
Так что я попытался Чтение каждого значения из списка и назначить новый список.
List<Click> clicks=new ArrayList<Click>();
for(Click c: e.getClicks()){
\t Click temp = new Click();
\t temp.setAff_source(c.getAff_source());
\t temp.setCb_to_award(c.getCb_to_award());
\t temp.setCb_type(c.getCb_type());
\t clicks.add(temp); \t
}
Но когда я напечатать элементы нового списка это кадры из фильма печатает один и тот же путь.
Мне нужно построить JSON из результирующей строки этого списка. Итак, если список возвращается в формате, он не поможет мне.
Я не мог найти ничего относительно этого, кроме How to pretty print Hibernate query results?
Я попытался Arrays.ToString (Object о). Но это не сработает.
GSON строитель по совместительству
Gson gson = new GsonBuilder()
\t \t .registerTypeAdapter(Click.class, new MyTypeAdapter<Click>())
\t \t .create();
List<Click> clicks=new ArrayList<Click>();
for(Click c: e.getClicks()){
\t Click temp = new Click();
\t temp.setAff_source(c.getAff_source());
\t temp.setCb_to_award(c.getCb_to_award());
\t temp.setCb_type(c.getCb_type());
\t temp.setCom_to_recieve(c.getCom_to_recieve());
\t temp.setStore_name(c.getStore_name());
\t temp.setT_date(c.getT_date());
\t temp.setT_status(c.getT_status());
\t temp.setT_ticket(c.getT_ticket());
\t temp.setUid(c.getUid());
\t System.out.println(c.toString());
\t clicks.add(temp); \t
}
String json = gson.toJson(clicks, Click.class);
Click.java
@Entity
@Table(name="click")
public class Click {
\t
\t @Id
\t @Column(name="t_ticket")
\t private String t_ticket;
\t
\t @Column(name="uid",nullable=false)
\t private long uid;
\t
\t public long getUid() {
\t \t return uid;
\t }
\t public void setUid(long uid) {
\t \t this.uid = uid;
\t }
\t @ManyToOne
\t @JoinColumn(name="uid",
\t \t \t \t insertable=false, updatable=false,
\t \t \t \t nullable=false)
\t private Earning earning;
\t
\t @Column(name="store_name")
\t private String store_name;
\t
\t @Column(name="t_status")
\t private String t_status;
\t
\t @Column(name="aff_source")
\t private String aff_source;
\t
\t @Column(name="com_to_recieve")
\t private float com_to_recieve;
\t
\t @Column(name="t_date")
\t private Date t_date;
\t
\t @Column(name="cb_to_award")
\t private float cb_to_award;
\t
\t @Column(name="cb_type")
\t private String cb_type;
\t public String getT_ticket() {
\t \t return t_ticket;
\t }
\t public void setT_ticket(String t_ticket) {
\t \t this.t_ticket = t_ticket;
\t }
\t
\t public Earning getEarning() {
\t \t return earning;
\t }
\t public void setEarning(Earning earning) {
\t \t this.earning = earning;
\t }
\t public String getStore_name() {
\t \t return store_name;
\t }
\t public void setStore_name(String store_name) {
\t \t this.store_name = store_name;
\t }
\t public String getT_status() {
\t \t return t_status;
\t }
\t public void setT_status(String t_status) {
\t \t this.t_status = t_status;
\t }
\t public String getAff_source() {
\t \t return aff_source;
\t }
\t public void setAff_source(String aff_source) {
\t \t this.aff_source = aff_source;
\t }
\t public float getCom_to_recieve() {
\t \t return com_to_recieve;
\t }
\t public void setCom_to_recieve(float com_to_recieve) {
\t \t this.com_to_recieve = com_to_recieve;
\t }
\t public Date getT_date() {
\t \t return t_date;
\t }
\t public void setT_date(Date t_date) {
\t \t this.t_date = t_date;
\t }
\t public float getCb_to_award() {
\t \t return cb_to_award;
\t }
\t public void setCb_to_award(float cb_to_award) {
\t \t this.cb_to_award = cb_to_award;
\t }
\t public String getCb_type() {
\t \t return cb_type;
\t }
\t public void setCb_type(String cb_type) {
\t \t this.cb_type = cb_type;
\t }
Любая помощь приветствуется.
Возможный дубликат [Как распечатать объект Java без получения «SomeType @ 2f92e0f4»?] (Http://stackoverflow.com/questions/29140402/how-do-i-print-my-java-object- без-получения-sometype2f92e0f4) –
@AlanHay Спасибо за ссылку. –
ОК, но не полагайтесь на toString() для логики приложения. Используйте библиотеку, такую как Джексон, чтобы легко преобразовать объект в Json и наоборот. http://www.mkyong.com/java/jackson-2-convert-java-object-to-from-json/ –