Problem mit @Temporal Mapping und SQL Server

markus.beckmann

Neues Mitglied
Hallo,

Beim ausführen einer JPA Query bekomme ich folgenden Fehler:
"Die Datentypen time und datetime sind im greater than or equal to-Operator inkompatibel."

Was mich vermuten lässt, dass etwas mit dem @Temporal Mapping nicht korrekt funktioniert.


Java:
public List<BuchungStundenabrechnung> getZeit() {		
		Date ende = new Date();	
		TypedQuery<BuchungStundenabrechnung> q = entityManager.createQuery("select b from BuchungStundenabrechnung b where b.ende >= :ende", BuchungStundenabrechnung.class);
		q.setParameter("ende", ende);	
		return q.getResultList();
	}

### SQL SERVER 10.50.1600.1 ###
Feld:

Ende time(0)

### Mapping Details###

@Entity
@Table(name="[Abgerechnete Zeit]")
public class BuchungStundenabrechnung

private Date ende; //(java.sql.Time wirft auch einen Typfehler)

@Temporal(TemporalType.TIME)
@Column(name="Ende")
public Date getEnde() {
return ende;
}

### Config Datasource###
<bean id="stundenabrechnungDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="xxx"/>
<property name="password" value="xxx"/>
<property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="jdbcUrl" value="jdbc:sqlserver://xxx:1433;database=stundenabrechnungTestSQL"/>
</bean>

### Config Entitymanager ###
<bean id="entityManagerFactoryStundenabrechnung" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!-- <property name="persistenceUnitManager" ref="pum"></property> -->
<property name="persistenceUnitName" value="stundenabrechnungDB_pu"></property>
<property name="dataSource" ref="stundenabrechnungDataSource"/>
</bean>

### Config PU ###
<persistence-unit name="stundenabrechnungDB_pu" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider> <class>de.daphi.integrationwebapp.stundenabrechnung.domain.BuchungStundenabrechnung</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="false" />
<property name="hibernate.use_sql_comments" value="true" />
<property name="hibernate.cache.use_query_cache" value="false" />
<property name="hibernate.cache.use_second_level_cache" value="false" />
</properties>
</persistence-unit>


Der selbe Test auf ein Feld in einer Mysql Datenbank bringt keine Fehlermeldung. @Temporal wird richtig angewendet.

Könnt ihr mir weiterhelfen, Google sagt nichts zu diesem Problem.

Gruß Markus
 
N

nillehammer

Gast
Ich glaube, dass MSSQL dein gemapptes Date aufgrund der Annotation als Time ansieht und Dein Referenzdatum "new Date()" als TimeStamp und deswegen sagt, die Typen seien inkompatibel. Da könnten die in JPQL eingebauten Schlüsselwörter helfen:
CURRENT_DATE: Returns the current date.
CURRENT_TIME: Returns the current time.
CURRENT_TIMESTAMP: Returns the current timestamp.

Nimm also CURRENT_TIME anstatt "new Date()" mit Parameter. Dein Query-String wäre dann wie folgt:
"select b from BuchungStundenabrechnung b where b.ende >= CURRENT_TIME"

Einen etwas allgemeineren Workaround habe ich dann noch hier gefunden: Software Development Fun A Lot Ever: Date and DateTime comparisons in JPQL
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Problem beim initialisieren des Caches Data Tier 0
S JPA Problem mit Cascading Data Tier 1
M Eclipse 4 RCP Hibernate Problem Data Tier 3
C JPA FetchType.LAZY, Relation @OneToMany und Problem mit dem update Data Tier 1
K Problem mit EJBs und Transaktionen Data Tier 0
G JPA: Entity Klasse @JoinColumns Problem Data Tier 2
M JPA Problem: java.sql.SQLSyntaxErrorException: Data Tier 7
H Hibernate Problem mit Lazy Loading bei @OneToMany Collections Data Tier 5
M MySql und JPA-Timestamp Problem Data Tier 8
J Hibernate Problem bei Master-Detail-Tabellen Data Tier 5
A JPA - ManyToMany Problem - keine Unique Mehrfachzuweisungen Data Tier 4
M Problem beim Laden von Objekten, die von anderen Applikationen in eine DB eingefügt wurden Data Tier 5
P JPA - HashMap mit Many-to-Many Relation Problem Data Tier 4
B Problem mit @ManyToMany und CascadeType.ALL Data Tier 3
Blackskyliner [JPA][Anfänger] Problem mit Wertzuweisung aus Verbundtabelle Data Tier 2
B Problem mit org.hibernate.LazyInitializationException Data Tier 11
B DatenquellenUpdater extends Thread - Problem mit PermGenSpace Data Tier 5
S Problem beim Insert mit Hibernate Data Tier 9
Y [openJPA] Problem mit Transaktion? Data Tier 2
A @SecondaryTable Problem Data Tier 9
N Problem beim session.flush(); Data Tier 17
Y Postgres und JPA - Primärschlüssel Problem Data Tier 3
P SQL PRoblem Hibernate? Data Tier 8
Y EJB Problem mit Transaktionen Data Tier 7
M Transaction / Session Problem Data Tier 4
G JPA 2.0 Query Problem Data Tier 3
P CORBA Problem bei EJB 3.0 Anwendung in Glassfish v3 Data Tier 7
F Problem mit Hibernate Schema Update Data Tier 2
S Lazy loading Problem Data Tier 2
M Insert-Problem mit JPA/Hibernate Data Tier 4
megachucky JPA - Problem mit Persistence Unit / Context Data Tier 1
H Hibernate Problem Data Tier 4
D Performance Problem mit Prepared Statement Data Tier 6
T Problem mit openJPA Data Tier 7
P Problem mit Data Tier 9
GilbertGrape Cascade Problem (Hibernate) Data Tier 3
C JPA Problem mit attributeOverride und mehrspaltigem PK Data Tier 2
B select "neu" statement Problem (jpql) Data Tier 8
boxi Hibernate Lazy Loading Problem Data Tier 2
M Problem mit Hibernate und SLF4J - NoSuchMethodException Data Tier 3
G Connection Problem - WAS 6.1, Hibernate, OS Authentication Data Tier 1
K Hibernate update-Problem Data Tier 36
J hibernate problem Data Tier 14
N Hibernate - Problem mit Update/Insert Data Tier 4
B Problem mit @PersistenceContext Data Tier 4
G Problem with mapped of the tables at one to one relationship Data Tier 8
A JPA Postgresql/JPA/EclipseLink - Mapping Fehler? Data Tier 7
OnDemand OneToMany Composite Key Mapping Data Tier 18
G Hibernate Collection Mapping - Fehler beim Updaten der DB Data Tier 0
P Hibernate Mapping - Nur eine Spalte per Join aus anderer Tabelle holen Data Tier 5
R mapping-file für hibernate zum Überschreiben der Annotationen Data Tier 7
H Hibernate - Mapping für Enumeration Data Tier 1
S (Hibernate) Mapping einer Datenbanktabelle mit mehreren Fremdschlüssel Data Tier 7
Kessi Hibernate Mapping-File vs. Annotations Data Tier 4
M Hibernate Mapping mal anders Data Tier 2
N Hibernate boolean mapping Data Tier 7
M JPA: Mapping von bestehender DB Data Tier 2
byte Hibernate: duplicate property mapping Data Tier 3
N Mapping einer 1:n in Hibernate Data Tier 11
F OR-Mapping Data Tier 4

Ähnliche Java Themen

Neue Themen


Oben