• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wywołanie metody z klasy w innej klasie ( z użyciem get/set ? ) - hibernate

Object Storage Arubacloud
0 głosów
1,410 wizyt
pytanie zadane 6 października 2017 w Java przez heartagram Obywatel (1,770 p.)

cześć,

potrzebuje wywołać metode z klasy CreateIBAN w klasie NewUser, a następnie przekazać ją i ustawić w CreateNewUser. Niestety mi nie wychodzi. Oczywiście później to wrzucić do bazy przez hibernate aby swobodnie te dane wyciągać w przyszłości. Dostaje komunikat: 

Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: manager1] Unable to build Hibernate SessionFactory
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:967)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892)
	at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	at domain.CreateNewUser.CN(CreateNewUser.java:39)
	at domain.ATM.changer(ATM.java:28)
	at domain.Main.main(Main.java:15)
Caused by: org.hibernate.MappingException: Could not determine type for: domain.CreateIBAN, at table: NewUser, for columns: [org.hibernate.mapping.Column(i)]
	at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:455)
	at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:422)
	at org.hibernate.mapping.Property.isValid(Property.java:226)
	at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:597)
	at org.hibernate.mapping.RootClass.validate(RootClass.java:265)
	at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:329)
	at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:451)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889)
	... 6 more

 

 

 

Myślałem nawet to zrobić np relacją jednokierunkową jeden do jeden ale czy warto sobie robić tutaj na siłe zadanie? :D

 

package domain;

import java.util.Random;

public class CreateIBAN {

	public void CIBAN() {

		Random rand = new Random();
	
		for(int i=0; i<9 ;i++)
		{
			int a = rand.nextInt(9);
			System.out.print(a);
		}
	}

}

 

 

package domain;

import java.util.Scanner;

import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;


public class CreateNewUser {

	public void CN() {
		NewUser user = new NewUser();

		
		System.out.println("Please enter name: ");
		Scanner scannerName = new Scanner(System.in);
		String SN = scannerName.nextLine();

		System.out.println("Please enter surname: ");
		Scanner scannerSurName = new Scanner(System.in);
		String SSN = scannerSurName.nextLine();

		System.out.println("Please enter pesel: ");
		Scanner scannerPesel = new Scanner(System.in);
		int Spe = scannerPesel.nextInt();

		System.out.println("Please enter telephone: ");
		Scanner scannerTelephoneNumber = new Scanner(System.in);
		int STN = scannerTelephoneNumber.nextInt();
		
		
		System.out.println("Please enter new PIN: ");
		Scanner scannerPIN = new Scanner(System.in);
		int SPIN = scannerPIN.nextInt();
		
		
		EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("manager1");
		EntityManager entityManager = entityManagerFactory.createEntityManager();
		


                user.i.CIBAN();               ///   :X ?
	
// czy może: 
CreateIBAN i = null;
			user.setI(i);                      ///  :X ?


		
		user.setName(SN);
		user.setSurName(SSN);
		user.setPesel(Spe);
		user.setTelephoneNumber(STN);
		user.setPin(SPIN);
		
		
		entityManager.getTransaction().begin();
		entityManager.persist(user);
		entityManager.getTransaction().commit();

		entityManager.close();
		entityManagerFactory.close();

	}

}

 

 

 

package domain;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class NewUser {

	@Id
	private long id;
	private String name;
	private String surName;
	private int pesel;
	private int telephoneNumber;
	private int pin;
	
	CreateIBAN i = new CreateIBAN();
	
	

	


	public CreateIBAN getI() {
		return i;
	}

	public void setI(CreateIBAN i) {
		this.i = i;
	}

	public int getPin() {
		return pin;
	}

	public void setPin(int pin) {
		this.pin = pin;
	}

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSurName() {
		return surName;
	}

	public void setSurName(String surName) {
		this.surName = surName;
	}

	public int getPesel() {
		return pesel;
	}

	public void setPesel(int pesel) {
		this.pesel = pesel;
	}

	public int getTelephoneNumber() {
		return telephoneNumber;
	}

	public void setTelephoneNumber(int telephoneNumber) {
		this.telephoneNumber = telephoneNumber;
	}

	
	

}

 

 

 

 

package domain;


public class Main {

	public static void main(String[] args) {

	

	ATM atm = new ATM();
		atm.changer();
		
		
	}

}

 

1 odpowiedź

+1 głos
odpowiedź 6 października 2017 przez Aisekai Nałogowiec (42,190 p.)
Albo można:

- relacją

-użyć @Embeded i @Embedable na CreateIBan.
komentarz 6 października 2017 przez heartagram Obywatel (1,770 p.)
Embeded fajny pomysł ale wciąż mam problem z wywołaniem tej metody (  public void CIBAN() ) i wpisaniem do tabeli  :x
komentarz 6 października 2017 przez Aisekai Nałogowiec (42,190 p.)
Dalej ten sam problem?
komentarz 7 października 2017 przez heartagram Obywatel (1,770 p.)
chyba problem jest w tym, że przekazuje voida i coś chcę z niego wywołać. Jak próbuje zmienić tą metode aby coś zwracała to nie bardzo wiem jak zreturnować coś z rand a przypisanie do zmiennej i zwrócenie też nie wychodzi bo tam chce aby ciąg był zwrócony i wrzucony do bazy a w przyszłości wyciągany.. sposobem math. też nie za bardzo to działa.

Podobne pytania

0 głosów
1 odpowiedź 1,082 wizyt
pytanie zadane 7 października 2017 w Java przez zygmunt Początkujący (310 p.)
0 głosów
1 odpowiedź 654 wizyt
pytanie zadane 24 lipca 2018 w C i C++ przez Krutek Początkujący (330 p.)
0 głosów
1 odpowiedź 440 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...