Witam,
jak można dodać do istniejącej bazy danych obiekt klasy Client, przypisując mu istniejący już w bazie AccType? Klasy w programie:
@Entity
public class Client {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
//pola typu firstName, password
@OneToOne
@JoinColumn(name = "accId")
private Account account;
@OneToOne
@JoinColumn(name = "accTypeId")
private AccType accType;
//+gettery i settery
}
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class AccType {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected long id;
//+getter, setter
}
@Entity
public class ClassicAcc extends AccType {
private String accTypeName = "Classic";
private double interest = 0.2;
private double monthlyFee = 0;
//+gettery i settery
}
public class Main {
private static EntityManagerFactory entityManagerFactory;
private static EntityManager entityManager;
public static void main(String[] args) {
entityManagerFactory = Persistence
.createEntityManagerFactory("aaaa");
entityManager = entityManagerFactory.createEntityManager();
Client client = new Client();
AccType accType = new ClassicAcc();
Account account = new Account();
client.setFirstName("Jan");
client.setLastName("Kowalski");
//...
client.setAccount(account);
client.setAccType(accType);
account.setAccNum("9876543210");
account.setBalance(12345567);
entityManager.getTransaction().begin();
entityManager.persist(client);
entityManager.persist(account);
entityManager.persist(accType);
entityManager.getTransaction().commit();
entityManager.close();
entityManagerFactory.close();
}
}