我正在使用Hibernate/JPA来执行本机PostGIS查询.这些查询的问题是它们需要的参数不是经典的X ='value'形式.
例如,以下行崩溃
String queryString = "select * from Cell c where ST_DWithin(c.shape, SetSRID(ST_GeomFromEWKT('POINT(:lon :lat)'),4326), 0.1)";
Query query = Cell.em().createNativeQuery(queryString, Cell.class);
query.setParameter("lon", longitude);
query.setParameter("lat", latitude);
play.exceptions.JavaExecutionException: org.hibernate.QueryParameterException: could not locate named parameter [lon]
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:259)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: could not locate named parameter [lon]
at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:358)
Run Code Online (Sandbox Code Playgroud)
但是,以下查询有效:
String queryString = String.format("select * from Cell c where ST_DWithin(c.shape, SetSRID(ST_GeomFromEWKT('POINT(%f %f)'),4326), 0.1)", longitude, latitude);
Query query = Cell.em().createNativeQuery(queryString, Cell.class);
Run Code Online (Sandbox Code Playgroud)
(但它易于SQL注入......)
有谁知道setParameter()在这种情况下如何使用?
Redmine中对Scrum的最佳支持是什么?
我尝试的所有插件要么不再那么活跃和/或不能完成使用Scrum管理一个主要项目的任务.
我用Google搜索无济于事......
在典型的手持/便携式嵌入式系统设备中,电池寿命是设计H/W,S/W以及设备可支持的功能的主要问题.从软件编程的角度来看,人们了解MIPS,内存(数据和程序)优化代码.我知道H/W深度睡眠模式,待机模式用于为较低周期的硬件提供时钟或将时钟全部转换为一些未使用的电路以节省电力,但我从这个角度寻找一些想法:
其中我的代码正在运行并且它需要继续执行,因此我如何有效地编写代码"power"以便消耗最小功率?
是否有任何特殊的编程结构,数据结构,控制结构,我应该看一下,以实现给定功能的最低功耗.
在代码结构设计时,或者在低级设计期间,是否存在任何s/w高级设计考虑因素,以使代码尽可能节省功耗(最少功耗)?
当我跑蚂蚁时,它说:
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: build.xml does not exist!
Build failed
Run Code Online (Sandbox Code Playgroud)
我可以用什么软件包下载所需的文件> C:\ Program Files\Java\jre6\lib\tools.jar
我刚刚下载了这个:
JRE-6u19-Windows的i586系统,s.exe
但遗憾的是它似乎不在它上面......
我与共享密钥有一对一的双向实体关系.当我尝试保存关联的所有者时,我得到了一个"null id generated"异常,对照关系的拥有方.我正在利用hibernate-entitymanager并使用spring进行事务管理.
拥有实体
@Entity
@Table(name = "lead")
public class Lead
{
private Long leadId;
private LeadAffiliate leadAffiliate;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getLeadId()
{
return leadId;
}
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
public LeadAffiliate getLeadAffiliate()
{
return leadAffiliate;
}
}
Run Code Online (Sandbox Code Playgroud)
拥有实体
@Entity
@Table(name = "lead_affiliate")
public class LeadAffiliate
{
private Long leadId;
private Lead lead;
@Id
public Long getLeadId()
{
return leadId;
}
@MapsIdmappedBy = "leadAffiliate")
@OneToOne(cascade = CascadeType.All)
@PrimaryKeyJoinColumn
@JoinColumn(name = "lead_id")
public Lead getLead()
{
return lead; …Run Code Online (Sandbox Code Playgroud) 我使用类javax.tools.JavaCompiler(jdk6)来编译源文件,但源文件依赖于某些jar文件.如何设置类路径javax.tools.JavaCompiler?
在我的MySQL数据库中,有"性别枚举('男性','女性')"
我创建了我的枚举"com.mydomain.myapp.enums.Gender",在我的Person实体中我定义了"性别性别".
现在我想在我的MySQL数据库中保留枚举类型,但是当我启动我的应用程序时,我得到:
MyApp.Person中的列类型为Sex的列错误.找到:枚举,预期:整数
为什么是这样?这就好像我用"@Enumerated(EnumType.ORDINAL)"注释了我的"性别性别",我没有.EnumType似乎只能是ORDINAL或STRING,那么如何指定它应该将字段视为枚举,而不是int?(并不是说有太大的不同,但足以让它对此感到不安.)
@Entity
public class Person {
@ElementCollection
@CollectionTable(name = "PERSON_LOCATIONS", joinColumns = @JoinColumn(name = "PERSON_ID"))
private List<Location> locations;
[...]
}
@Embeddable
public class Location {
[...]
}
Run Code Online (Sandbox Code Playgroud)
给定以下类结构,当我尝试将新位置添加到Person的位置列表时,它总是会导致以下SQL查询:
DELETE FROM PERSON_LOCATIONS WHERE PERSON_ID = :idOfPerson
Run Code Online (Sandbox Code Playgroud)
和
A lotsa' inserts into the PERSON_LOCATIONS table
Run Code Online (Sandbox Code Playgroud)
Hibernate(3.5.x/JPA 2)删除给定Person的所有相关记录,并重新插入所有以前的记录,再加上新记录.
我认为Location上的equals/hashcode方法可以解决问题,但它没有改变任何东西.
任何提示都表示赞赏!
当我updatePolicy在maven设置中定义一个时,它会告诉maven下载快照工件的频率.
如果我将其设置为始终当然每次都会下载所有快照.
我想知道如果我每天将其设置为默认值或更长的更长时间会发生什么.
maven是否仍然会检查新版本的快照是否可用,如果是,它是否会下载它,尽管该策略是每天说的?
我正在寻找正确的设置,以避免冗余下载,不要错过那里的新快照.
我正在使用统一的Maven构建来改进一堆现有的Java项目.由于每个项目都是成熟的并且已经建立了基于Ant的构建,所以我maven-antrun-plugin用来执行build.xml如下现有的:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<tasks>
<ant antfile="build.xml" target="compile" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
当我mvn compile使用此消息运行构建失败时:
[INFO] An Ant BuildException has occured: The following error occurred
while executing this line:
build.xml:175: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\Java\jdk1.6.0_13\jre"
Run Code Online (Sandbox Code Playgroud)
令我困惑的是
JAVA_HOME=C:\Java\jdk1.6.0_13我的环境设置的一部分,什么时候mvn.bat执行,这正是我得到的,但正如你在错误信息中看到它出现的那样C:\Java\jdk1.6.0_13\jreant compile一切编译就好了 …