sql >> Database >  >> RDS >> PostgreSQL

Speel 2.2 met Hibernate JPA en Postgres

Je zei dat je geen code hebt geschreven, dus besloot ik je te laten zien hoe ik nieuwe Play! 2.2 applicatie met behulp van JPA en Postgresql. U kunt hetzelfde doen en het verschil controleren.

Eerst heb ik een nieuwe Play-applicatie gemaakt met het commando:

play new testApp

Vervolgens heb ik het bestand persistence.xml in de map testApp/conf/META-INF gemaakt en gevuld met inhoud:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
         version="2.0">

<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>DefaultDS</non-jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
        <!--<property name="hibernate.show_sql" value="true"/>-->
        <property name="hibernate.hbm2ddl.auto" value="update"/>
        <property name="hibernate.format_sql" value="true"/>
    </properties>
</persistence-unit>

Toegevoegd aan mijn testApp/conf/application.conf:

jpa.default=defaultPersistenceUnit
db.default.driver=org.postgresql.Driver
db.default.url="postgres://postgres:[email protected]/test"

# You can expose this datasource via JNDI if needed (Useful for JPA)
db.default.jndiName=DefaultDS

Ik heb ook een voorbeeldmodelklasse gemaakt:

@Entity
@SequenceGenerator(name = "Token_generator", sequenceName = "test_sequence", allocationSize = 1, initialValue = 1)
public class Test {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "Token_generator")
    public Long id;

    public String name;
}

Ik begon de app te spelen met het commando:

play ~run

Toen kon ik een werkende website zien onder http://localhost:9000/ adres. Ik kon ook een nieuwe tabeltest zien in de postgres-testdatabase.



  1. Hoe LocalTimeStamp() werkt in PostgreSQL

  2. mysqli voorbereide instructie num_rows retourneert 0 terwijl query groter is dan 0

  3. virtualenv die verplaatste bibliotheken kan vinden (zoals mysqlclient lib voor MySQLdb)

  4. SQL converteert datetime en trekt uren af