#JPA for complex object member(?)

1 messages · Page 1 of 1 (latest)

granite ruin
#

Lets say my current save system which just stores in local files, does it like this:

Saving:

Loading:

            if (reader.has("last-bounty-teleport")) {
                player.getBountyTeleportTimer()
                        .start(reader.get("last-bounty-teleport").getAsInt());
            }

How would i replicate this with JPA, basically requiring functions to load/store them.

@Column(name = last-bounty-teleport)
private final SecondsTimer                   bountyTeleportTimer    = new SecondsTimer();
clear helmBOT
#

<@&987246399047479336> please have a look, thanks.

clear helmBOT
#

While you are waiting for getting help, here are some tips to improve your experience:

Code is much easier to read if posted with syntax highlighting and proper formatting.

If nobody is calling back, that usually means that your question was not well asked and hence nobody feels confident enough answering. Try to use your time to elaborate, provide details, context, more code, examples and maybe some screenshots. With enough info, someone knows the answer for sure.

Don't forget to close your thread using the command </help-thread close:1027500463647621170> when your question has been answered, thanks.

frank mist
#

you could do something like this, if it's one2one relation: ```package com.example.hibernate;

import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToOne;
import jakarta.persistence.Table;

@Entity
@Table(name = "players")
public class Player {
@Id
@GeneratedValue
private int Id;

@OneToOne(cascade = { CascadeType.ALL })
@JoinColumn(name = "seconds_timer_id")
private SecondsTimer secondsTimer;

public SecondsTimer getSecondsTimer() {
    return secondsTimer;
}

public void setSecondsTimer(SecondsTimer secondsTimer) {
    this.secondsTimer = secondsTimer;
}

public Player() {

}

}and thenpackage com.example.hibernate;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToOne;

@Entity
public class SecondsTimer {
@Id
@GeneratedValue

private int id;
private Integer seconds;



@OneToOne
@JoinColumn(name = "player_id")
private Player player;

public Player getPlayer() {
    return player;
}

public void setPlayer(Player player) {
    this.player = player;
}

public Integer getSeconds() {
    return seconds;
}

public void setSeconds(Integer seconds) {
    this.seconds = seconds;
}

}

clear helmBOT
# frank mist you could do something like this, if it's one2one relation: ```package com.examp...

Detected code, here are some useful tools:

Formatted code
package com.example.hibernate;

import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToOne;
import jakarta.persistence.Table;

@Entity
@Table(name = "players") public class Player {
  @Id
  @GeneratedValue
  private int Id;
  @OneToOne(cascade = {
    CascadeType.ALL}
  ) @JoinColumn(name = "seconds_timer_id") private SecondsTimer secondsTimer;
  public SecondsTimer getSecondsTimer() {
    return secondsTimer;
  }
  public void setSecondsTimer(SecondsTimer secondsTimer) {
    this .secondsTimer = secondsTimer;
  }
  public Player() {
  }
}