2016-05-10 14 views
0

Ich versuche, eine Beispielanwendung mit JAXRS/Hibernate zu erstellen.Hibernate Die Daten werden nicht abgerufen.

Ich habe Beispieldaten in meiner Datenbank, aber ich konnte es nicht abrufen. Bitte überprüfen Sie meinen Code und lassen Sie mich wissen, wo ich Fehler mache.

Klasse Entity

package org.cricket.cricketstats.data; 

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


@Table(name="player_info") 
@Entity 
public class PlayerInfo { 


@Id 
@Column(name="player_id") 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private long playerId; 

@Column(name="player_name") 
private String playerName; 

@Column(name="player_role") 
private String playerRole; 

@Column(name="player_batting_style") 
private String playerBattingStyle; 

@Column(name="player_bowling_style") 
private String playerBowlingStyle; 

@Column(name="player_image") 
private String playerImage; 

@Column(name="player_profile_desc") 
private String playerProfile; 


public PlayerInfo(){ 

} 

public PlayerInfo(long playerId, String playerName, String playerRole, String playerBattingStyle, 
     String playerBowlingStyle, String playerImage, String playerProfile) { 
    super(); 
    this.playerId = playerId; 
    this.playerName = playerName; 
    this.playerRole = playerRole; 
    this.playerBattingStyle = playerBattingStyle; 
    this.playerBowlingStyle = playerBowlingStyle; 
    this.playerImage = playerImage; 
    this.playerProfile = playerProfile; 
} 


public long getPlayerId() { 
    return playerId; 
} 

public void setPlayerId(long playerId) { 
    this.playerId = playerId; 
} 

public String getPlayerName() { 
    return playerName; 
} 

public void setPlayerName(String playerName) { 
    this.playerName = playerName; 
} 

public String getPlayerRole() { 
    return playerRole; 
} 

public void setPlayerRole(String playerRole) { 
    this.playerRole = playerRole; 
} 

public String getPlayerBattingStyle() { 
    return playerBattingStyle; 
} 

public void setPlayerBattingStyle(String playerBattingStyle) { 
    this.playerBattingStyle = playerBattingStyle; 
} 

public String getPlayerBowlingStyle() { 
    return playerBowlingStyle; 
} 

public void setPlayerBowlingStyle(String playerBowlingStyle) { 
    this.playerBowlingStyle = playerBowlingStyle; 
} 

public String getPlayerImage() { 
    return playerImage; 
} 

public void setPlayerImage(String playerImage) { 
    this.playerImage = playerImage; 
} 

public String getPlayerProfile() { 
    return playerProfile; 
} 

public void setPlayerProfile(String playerProfile) { 
    this.playerProfile = playerProfile; 
} 

} 

Rastressourcen

Paket org.cricket.cricketstats.resources;

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

import org.cricket.cricketstats.data.PlayerInfoDAO; 
import org.cricket.cricketstats.model.PlayerInfoBean; 

@Path("players") 
public class CricketResources { 

PlayerInfoBean playerInfoBean= new PlayerInfoBean(); 

@GET 
@Path("{playerId}") 
@Produces(MediaType.APPLICATION_JSON) 
public PlayerInfoBean getPlayerDetails(@PathParam("playerId") long id) { 
    PlayerInfoDAO dao= new PlayerInfoDAO(); 
    dao.getPlayerInfo(); 
    playerInfoBean.setPlayerId(id); 
    return playerInfoBean; 
} 


} 

Config-Datei

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
<session-factory> 

    <!-- Connection settings --> 
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property> 
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/cricket</property> 
    <property name="hibernate.connection.username">postgres</property> 
    <property name="hibernate.connection.password">postgres</property> 

    <!-- SQL dialect --> 
    <property  name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property> 

    <!-- Print executed SQL to stdout --> 
    <property name="show_sql">true</property> 

    <!-- validate all database on startup --> 
    <property name="hibernate.hbm2ddl.auto">validate</property> 

    <!-- Annotated entity classes --> 
    <mapping class="org.cricket.cricketstats.data.PlayerInfo"/> 

</session-factory> 
</hibernate-configuration> 

DAO Klasse

package org.cricket.cricketstats.data; 
import java.util.List; 

import org.cricket.cricketstats.model.PlayerInfoBean; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 
import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry; 
public class PlayerInfoDAO { 


public void getPlayerInfo(){ 
    Configuration config=new Configuration().configure(); 
    ServiceRegistry serviceRegistry= new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build(); 
    //StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(config.getProperties()); 
    // SessionFactory factory = config.buildSessionFactory(builder.build()); 
    SessionFactory factory = config.buildSessionFactory(serviceRegistry);  
    Session session = factory.openSession(); 
    Transaction tx =session.beginTransaction(); 
    List infoList=session.createQuery("FROM PlayerInfo").list(); 
    tx.commit(); 
    session.close(); 
    System.out.println(infoList.get(0).getPlayerName()); 

} 


} 

** Ich habe auch versucht **

+0

WARNEN: HHH000183: keine persistenten Klassen für Abfrageklasse gefunden: FROM org.cricket.cricketstats.data .PlayerInfo maj 10, 2016 06.49.48 EM org.hibernate.hql.internal.QueryTranslatorFactoryInitiator initiateService INFO: HHH000397: mit ASTQueryTranslatorFactory – saivinod

+0

Sie AnnotationConfiguration statt Konfiguration – ike3

+0

@ ike3 'AnnotationConfiguration' ist nur mit Hibernate verwendet 3 verwenden sollten :) –

Antwort

0

Die Art und Weise in Abfrage vollständigen Pfad zu geben ist von Ihnen zum Aufbau einer Sitzung fa verwendet ctory nicht richtig für Hibernate ist 5. Es kann 4.

verwenden stattdessen nur für Hibernate verwendet werden

SessionFactory factory = new Configuration().configure().buildSessionFactory(); 
+0

Es hat funktioniert. Großartig! Danke vielmals. – saivinod

Verwandte Themen