Using reflection for Hibernate classes.

master
Markus Kreth 7 years ago
parent 8807595b1a
commit b18db77e4d
  1. 6
      pom.xml
  2. 11
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Persongroup.java
  3. 45
      src/test/java/de/kreth/vaadin/clubhelper/AbstractHibernateConfiguration.java

@ -169,6 +169,12 @@
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
</dependency>
<dependency> <dependency>
<groupId>simple-jndi</groupId> <groupId>simple-jndi</groupId>
<artifactId>simple-jndi</artifactId> <artifactId>simple-jndi</artifactId>

@ -10,26 +10,25 @@ import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery; import javax.persistence.NamedQuery;
import javax.persistence.Table; import javax.persistence.Table;
/** /**
* The persistent class for the persongroup database table. * The persistent class for the persongroup database table.
* *
*/ */
@Entity @Entity
@Table(name="persongroup") @Table(name = "persongroup")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@NamedQuery(name="Persongroup.findAll", query="SELECT p FROM Persongroup p") @NamedQuery(name = "Persongroup.findAll", query = "SELECT p FROM Persongroup p")
public class Persongroup extends BaseEntity implements Serializable { public class Persongroup extends BaseEntity implements Serializable {
private static final long serialVersionUID = -2466223964213904302L; private static final long serialVersionUID = -2466223964213904302L;
//bi-directional many-to-one association to Person // bi-directional many-to-one association to Person
@ManyToOne @ManyToOne
private Person person; private Person person;
//bi-directional many-to-one association to GroupDef // bi-directional many-to-one association to GroupDef
@ManyToOne @ManyToOne
@JoinColumn(name="group_id") @JoinColumn(name = "group_id")
private GroupDef groupDef; private GroupDef groupDef;
public Persongroup() { public Persongroup() {

@ -1,41 +1,32 @@
package de.kreth.vaadin.clubhelper; package de.kreth.vaadin.clubhelper;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.cfg.Configuration; import org.hibernate.cfg.Configuration;
import org.reflections.Reflections;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Adress; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.BaseEntity;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Altersgruppe;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Attendance;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubeventHasPerson; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubeventHasPerson;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Contact;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.DeletedEntry;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.GroupDef;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Persongroup;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Pflicht;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Relative;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Startpass;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.StartpassStartrechte;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Version;
public abstract class AbstractHibernateConfiguration implements HibernateConfiguration { public abstract class AbstractHibernateConfiguration implements HibernateConfiguration {
private Set<Class<?>> entityClasses;
public AbstractHibernateConfiguration() {
Reflections reflections = new Reflections("de.kreth.vaadin.clubhelper.vaadinclubhelper.data");
entityClasses = new HashSet<>(reflections.getSubTypesOf(BaseEntity.class));
entityClasses.add(ClubeventHasPerson.class);
}
@Override @Override
public void configure(Configuration configuration) { public void configure(Configuration configuration) {
configuration.addAnnotatedClass(Adress.class);
configuration.addAnnotatedClass(Altersgruppe.class); for (Class<?> entityClass : entityClasses) {
configuration.addAnnotatedClass(Attendance.class); configuration.addAnnotatedClass(entityClass);
configuration.addAnnotatedClass(Contact.class); }
configuration.addAnnotatedClass(DeletedEntry.class);
configuration.addAnnotatedClass(GroupDef.class);
configuration.addAnnotatedClass(Person.class);
configuration.addAnnotatedClass(Persongroup.class);
configuration.addAnnotatedClass(Pflicht.class);
configuration.addAnnotatedClass(Relative.class);
configuration.addAnnotatedClass(Startpass.class);
configuration.addAnnotatedClass(StartpassStartrechte.class);
configuration.addAnnotatedClass(Version.class);
configuration.addInputStream(getClass().getResourceAsStream("/schema/ClubEvent.hbm.xml")); configuration.addInputStream(getClass().getResourceAsStream("/schema/ClubEvent.hbm.xml"));
configuration.addAnnotatedClass(ClubeventHasPerson.class);
configuration.setProperty("hibernate.hbm2ddl.auto", "update"); configuration.setProperty("hibernate.hbm2ddl.auto", "update");
configuration.setProperty("spring.jpa.hibernate.ddl-auto", "update"); configuration.setProperty("spring.jpa.hibernate.ddl-auto", "update");

Loading…
Cancel
Save