JPA + Hibernate + Spring - Hilfe bei minimalem Beispiel

TheBigS

Grünschnabel
Hallo,

ich versuche mich gerade, im Zuge meines Studiums, mit Spring. Ich möchte mit einem OR-Mapper Daten in die Datenbank schreiben und auch wieder auslesen. Es soll einfach ein minimales Beispiel werden, wie man so etwas realisiert.

Ich scheitere jedoch schon am Anfang.

Folgendes habe ich bereits:

Java:
package com.test.myfirst

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String username;

    public int getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Override
    public String toString() {
        return String.format("User[id=%d, username='%s']",id, username);
    }
}

Java:
package com.test.myfirst

import com.test.myfirst.User;
import org.springframework.data.repository.CrudRepository;

public interface UserRepository extends CrudRepository<User, Integer>{
}

Code:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
       xmlns:jpa="http://www.springframework.org/schema/data/jpa"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd     http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">

    <jee:jndi-lookup id="MySqlDataSource" jndi-name="java:/MyTestMySQLDB" resource-ref="true"/>

    <!-- Directory to scan for repository classes -->
    <jpa:repositories base-package="com.test.myfirst" query-lookup-strategy="create-if-not-found"/>

    <bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
        <property name="jpaDialect">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
        </property>
    </bean>

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="MySqlDataSource" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="generateDdl" value="true" />
                <property name="database" value="MYSQL" />
            </bean>
        </property>
    </bean>
</beans>

Code:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.test.myfirst</groupId>
    <artifactId>MyFirstWebApp</artifactId>
    <packaging>war</packaging>
    <version>0.1</version>
    <name>MyFirstWebApp</name>
    <url>http://maven.apache.org</url>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
      <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.9.0.RELEASE</version>
      </dependency>
    </dependencies>

    <build>
        <finalName>MyFirstWebApp</finalName>
    </build>

</project>

Die MySQL Datenbank ist im Wildfly Applicationserver konfiguriert. Was mir jetzt noch nicht ganz klar ist, wie ich z.B. in der index.jsp einen User erstelle, der mit UserRepository.save(...) in die Datenbank geschrieben wird.

Kann mir bitte jemand, basierend auf meinem Code (event. per Beispiel) erklären, was mir noch fehlt, bzw. was ich falsch mache oder anders machen sollte?

Wie anfangs gesagt, ich bin was Spring betrifft noch Anfänger und versuche mich da durchzuarbeiten, daher bitte um Nachsicht.

Danke.

Grüße,
 
Auch wenn es mittlerweile etwas spät kommt: Warum will man Spring verwenden, wenn man einen Enterprise-Container hat? Spring war mal dafür gedacht, Enterprise-Technologie ohne einen Enterprise-Container wie JBoss, WebLogic oder dergleiche anzubieten. Da ich aber weit davon weg bin, Spring-Experte zu sein, kann ich nichts weiter dazu beitragen, als zu raten, erstmal die Finger davon zu lassen und mit Wildfly-Boardmitteln zu arbeiten. Die genügen für JPA+JSP auf jeden Fall, vollkommen.
 
Zurück