Hibernate - jak uzupełnić nulle po skasowaniu wpisu w bazie danych ?

Hibernate - jak uzupełnić nulle po skasowaniu wpisu w bazie danych ?
BB
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 8 lat
  • Postów:34
0

Cześć

Mam problem z baza MySQL i Hibernate , Spring
Przykladowa tabela to: Id jest auto increment ,

id name

1 karol
2 maciek
3 monika

kasuje pole nr 2 uzywajac metody:

Kopiuj
public void removePerson(int id) {
		Session session = this.sessionFactory.getCurrentSession();
		Person person = session.get(Person.class, id);
		session.delete(Person);
	}

po wykasowaniu wpisu z id 3 monika pozostaje puste pole i przy dodawaniu nowego wpisu mam sytuacje id nr 3 zostaje pominiete i od razu dodaje wpis na nr 4:

id name

1 karol
2 maciek
null null
4 stefan

do zapisywania uzywam metody:

Kopiuj
 public void addPerson(Person p) {
		Session session = this.sessionFactory.getCurrentSession();
		session.persist(p);
	}

co trzeba zrobić aby nakazać hibernate albo mysql aby uzupełniał wykasowane pola od 0 jezeli sa puste a po ich wypełnieniu juz normalnie wdg. kolejnosci ponieważ po wykasowaniu większej ilości danych mam sytuacje

id name
null nulll < ------- Chciałbym aby te pola zostały automatycznie uzupełniane przy dodawaniu nowych danych jeżeli są puste
null null
130 roman
<-------- Po wypełnieniu wszystkich pol można dodawać już według kolejności czyli teraz 131

Klasa Person.java

Kopiuj
 
@Entity
@Table(name="persons")
public class Person{
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int id;
	
	private String name;

Chyba że to co chciałbym zrobić jest zła praktyką w takim razie prosiłbym o wyprowadzenie mnie z błędu :P

edytowany 10x, ostatnio: BartBas
T1
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 8 lat
  • Postów:56
1

Usuwanie encji z bazy nie zostawia żadnych nulli tylko kasuje cały wpis. Co do id to można ustawić tabele "AUTO_INCREMENT = 1" i wtedy będzie ustawiało od najbliższych wolnych numerów. Tylko po co to robić? Ciebie w ogóle nie powinno interesować id, przecież nie skończy Ci się wielkość longa.

BB
Denerwuje mnie fakt że mam jeden wpis w db i ma on id=73 ...z drugiej strony faktycznie od strony użytkownika nie jest to wyświetlane jestem laikiem w temacie, może tak ma być. Pozostaje jeszcze kwestia editu encji gdy modyfikuje dany wpis to usuwa stary i nadaje mu nowe id .. w tym przypadku jednak wolał bym ady id pozostawało to samo.
T1
Jeśli poprawnie updatujesz encje to id nie powinno się zmienić.
BB
co racja to racja :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.