小编Pas*_*ent的帖子

JPA/Hibernate本机查询无法识别参数

我正在使用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()在这种情况下如何使用?

java orm hibernate jpa postgis

46
推荐指数
2
解决办法
9万
查看次数

Redmine和Scrum

Redmine中对Scrum的最佳支持是什么?

  • 最佳做法?
  • 插件支持?

我尝试的所有插件要么不再那么活跃和/或不能完成使用Scrum管理一个主要项目的任务.

我用Google搜索无济于事......

plugins scrum redmine

43
推荐指数
5
解决办法
5万
查看次数

高效的软件编码

在典型的手持/便携式嵌入式系统设备中,电池寿命是设计H/W,S/W以及设备可支持的功能的主要问题.从软件编程的角度来看,人们了解MIPS,内存(数据和程序)优化代码.我知道H/W深度睡眠模式,待机模式用于为较低周期的硬件提供时钟或将时钟全部转换为一些未使用的电路以节省电力,但我从这个角度寻找一些想法:

其中我的代码正在运行并且它需要继续执行,因此我如何有效地编写代码"power"以便消耗最小功率?

是否有任何特殊的编程结构,数据结构,控制结构,我应该看一下,以实现给定功能的最低功耗.

在代码结构设计时,或者在低级设计期间,是否存在任何s/w高级设计考虑因素,以使代码尽可能节省功耗(最少功耗)?

embedded power-management

42
推荐指数
4
解决办法
2218
查看次数

尝试构建文件时出现Ant错误,找不到tools.jar?

当我跑蚂蚁时,它说:

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

但遗憾的是它似乎不在它上面......

java ant deployment tools.jar

42
推荐指数
5
解决办法
10万
查看次数

如何正确级联在Hibernate 3.6中保存主键上的一对一双向关系

我与共享密钥有一对一的双向实体关系.当我尝试保存关联的所有者时,我得到了一个"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)

java orm hibernate jpa jpa-2.0

40
推荐指数
2
解决办法
7万
查看次数

当我使用javax.tools.JavaCompiler编译源代码时如何设置classpath?

我使用类javax.tools.JavaCompiler(jdk6)来编译源文件,但源文件依赖于某些jar文件.如何设置类路径javax.tools.JavaCompiler

java jdk1.6 jsr199 java-compiler-api

39
推荐指数
2
解决办法
2万
查看次数

Enum in Hibernate,坚持作为枚举

在我的MySQL数据库中,有"性别枚举('男性','女性')"

我创建了我的枚举"com.mydomain.myapp.enums.Gender",在我的Person实体中我定义了"性别性别".

现在我想在我的MySQL数据库中保留枚举类型,但是当我启动我的应用程序时,我得到:

MyApp.Person中的列类型为Sex的列错误.找到:枚举,预期:整数

为什么是这样?这就好像我用"@Enumerated(EnumType.ORDINAL)"注释了我的"性别性别",我没有.EnumType似乎只能是ORDINAL或STRING,那么如何指定它应该将字段视为枚举,而不是int?(并不是说有太大的不同,但足以让它对此感到不安.)

java mysql orm enums hibernate

39
推荐指数
4
解决办法
7万
查看次数

Hibernate - @ElementCollection - 奇怪的删除/插入行为

@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方法可以解决问题,但它没有改变任何东西.

任何提示都表示赞赏!

java orm hibernate jpa jpa-2.0

39
推荐指数
2
解决办法
4万
查看次数

maven中的updatePolicy如何真正起作用?

当我updatePolicy在maven设置中定义一个时,它会告诉maven下载快照工件的频率.

如果我将其设置为始终当然每次都会下载所有快照.

我想知道如果我每天将其设置为默认值或更长的更长时间会发生什么.

maven是否仍然会检查新版本的快照是否可用,如果是,它是否会下载它,尽管该策略是每天说的?

我正在寻找正确的设置,以避免冗余下载,不要错过那里的新快照.

maven-2 snapshot

39
推荐指数
1
解决办法
3万
查看次数

JAVA_HOME被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)

令我困惑的是

  1. 我有JAVA_HOME=C:\Java\jdk1.6.0_13我的环境设置的一部分,什么时候mvn.bat执行,这正是我得到的,但正如你在错误信息中看到它出现的那样C:\Java\jdk1.6.0_13\jre
  2. 如果我运行ant compile一切编译就好了 …

ant maven-2 maven

38
推荐指数
2
解决办法
1万
查看次数