小编sta*_*ker的帖子

下划线连接到类名是什么意思?

我正在阅读"JPA 2.0中的动态,类型安全查询"一文,并偶然发现了这个例子:

EntityManager em = ...
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Person> c = qb.createQuery(Person.class);
Root<Person> p = c.from(Person.class);
Predicate condition = qb.gt(p.get(Person_.age), 20);
//                                     ^^ --- this one
c.where(condition);
TypedQuery<Person> q = em.createQuery(c); 
List<Person> result = q.getResultList();
Run Code Online (Sandbox Code Playgroud)

我想知道,这里的下划线究竟是什么意思?

由于下划线是类名的有效部分,我不明白为什么可以在JPA中使用它.我在我的代码中使用现有实体检查了这一点,当然我的类无法解析为ClassName_

java jpa criteria-api

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

postgresql重复键违反了唯一约束

嗨,我有一个问题,我知道这是多次发布,但我没有找到我的问题的答案.问题是我有一个表和一列"id"我希望它是正常的唯一数字.这种类型的列是串行的,每个插入后的下一个值是从一个序列中提交的,所以一切似乎都可以,但它仍然有时显示此错误.我不知道为什么?在文档中它是写的顺序是傻瓜教授,并始终有效.如果我向该列添加UNIQUE约束,那么它会是什么?我曾多次在Postres工作,但这个错误第一次出现在我面前.我做的一切正常,我之前从未遇到过这个问题.你能帮我找到可以在将来用于所有将要创建的表的答案吗?让我们说我们有这样的容易:

CREATE TABLE comments
(
  id serial NOT NULL,
  some_column text NOT NULL,
  CONSTRAINT id_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE interesting.comments OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)

如果我添加:

ALTER TABLE comments ADD CONSTRAINT id_id_key UNIQUE(id)
Run Code Online (Sandbox Code Playgroud)

是否应该或是否还有其他事情要做?

postgresql

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

如何在JSF 2.0/2.1中用CDI替换@ManagedBean/@ViewScope

我目前正在使用RichFaces评估Java EE 6/JSF 2.1.

声明为的bean

@ManagedBean
@ViewScoped
Run Code Online (Sandbox Code Playgroud)
  1. 获取ID集(以准备例如删除操作).
  2. 通过JSF显示确认弹出窗口.
  3. 如果用户确认,则调用delete方法并删除在步骤1中存储了ID的行.

由于CDI bean没有ViewScope,我试图将bean声明为:

@Named
@ConversationScoped
Run Code Online (Sandbox Code Playgroud)

现在,处理在步骤3中失败,因为步骤1中设置的值(已选中)不再可用.

我必须使用Conversation.begin()Conversation.end()方法吗?

如果是这样,哪里可以调用它们的好地方?

jsf cdi jsf-2 view-scope

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

如何外化JPAs persistence.xml中的属性?

我想将一些hibernate配置放在属性文件中,以使其在没有构建和部署的情况下可编辑.

我尝试通过遵循Create JPA EntityManager中没有persistence.xml配置文件的指示来解决我的问题

app.properties:

hibernate.show_sql=true 
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.hbm2ddl.auto=validate 
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.default_schema=myschema
Run Code Online (Sandbox Code Playgroud)

persistence.xml中

<?xml version="1.0" encoding="UTF-8"?>
<!-- Persistence deployment descriptor for dev profile -->
<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_1_0.xsd" 
             version="1.0">

   <persistence-unit name="pu">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>jdbc/appDatasource</jta-data-source>
      <properties>
         <property name="jboss.entity.manager.factory.jndi.name" value="java:/appEntityManagerFactory"/>
      </properties>
   </persistence-unit>

</persistence>
Run Code Online (Sandbox Code Playgroud)

在初始化代码中,应用程序执行以下序列(找到属性),

Properties props = new Properties();
InputStream is = ClassLoader.getSystemResourceAsStream( "app.properties" );
props.load( is );
Persistence.createEntityManagerFactory( "pu", props );
Run Code Online (Sandbox Code Playgroud)

但失败并显示错误消息:

 INFO  [SessionFactoryImpl] building session factory
 INFO  [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
ERROR [STDERR] …
Run Code Online (Sandbox Code Playgroud)

java hibernate seam jpa java-ee

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

如果角色的头部已经旋转了60°,角色的身体怎么能连续旋转?

经过一些实验,我将一个空的(HeadCam)作为角色的脖子.此片段允许头部同步旋转到CardboardHead/Camera.

void LateUpdate() {
    neckBone.transform.rotation = Camera.transform.rotation *  Quaternion.Euler( 0,0,-90);
    Camera.transform.position = HeadCam.transform.position;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当只有头部在-60°到60°的范围内旋转时,角色的手臂不应该移动,之后我想移动整个角色,手臂仍然可见.只要角色翻转180°后,角色旋转不超过180°,以下方法就能正常工作,我怎样才能实现恒定旋转?

void LateUpdate() {
    Quaternion camRot = Camera.transform.rotation * Quaternion.Euler( 0,0,-90);                 
    neckBone.transform.rotation = camRot;
    float yrot = camRot.eulerAngles.y;
    float ydelta = 0;
    if ( yrot < 300f && yrot > 180 ) {
        ydelta = yrot - 300f;
    }
    if ( yrot > 60f && yrot < 180 ) {
        ydelta = yrot - 60;
    }
    playerObj.transform.rotation =  Quaternion.Euler(0, ydelta, 0); 
    Camera.transform.position = HeadCam.transform.position;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

用于独立测试算法的java …

c# java unity-game-engine google-cardboard

17
推荐指数
1
解决办法
801
查看次数

有没有办法在运行时获取类的字节码?

在Java中,是否有一种方法(在运行时)获取定义特定类的字节码?

换句话说,有没有办法获取在加载特定类时byte[]传递给的数组ClassLoader.defineClass(String name, byte[] b, int off, int len)?我看到声明了这个方法final,因此创建一个ClassLoader拦截类定义的自定义似乎是不可能的.

在过去,我已经使用类ClassLoader来通过该getResourceAsStream(String)方法获取字节码,但我更喜欢更规范的解决方案.

java bytecode runtime

16
推荐指数
2
解决办法
4686
查看次数

将最简单的字节数组插入List <Byte>?

在某些代码中,我正在创建一个Bytes列表,并希望在构建它时将一个字节数组插入到列表中.这样做最干净的方法是什么?请参阅下面的代码 - 谢谢.

public class ListInsert {
    public static byte[] getData() {
        return new byte[]{0x01, 0x02, 0x03};
    }

    public static void main(String[] args) {
        final List<Byte> list = new ArrayList<Byte>();
        list.add((byte)0xaa);
        list.add(getData()); // I want to insert an array of bytes into the list here
        list.add((byte)0x55);
    }
}
Run Code Online (Sandbox Code Playgroud)

java list

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

如何创建LIFO执行器?

我想创建一个线程池,它将执行最近提交的任务.关于如何实现这一目标的任何建议?

谢谢

java multithreading threadpool

16
推荐指数
2
解决办法
5810
查看次数

包含2000 + 1枚举常量的枚举类是否达到了限制?

以下代码NullPointerException在main中失败(map==null).只有在我定义2001或更多枚举常量时,才会出现问题,2000工作正常.

为什么不执行静态代码块?

我们是否达到编译器的任何静默限制(没有警告,没有错误)或JVM?

编译后的类文件超过172KB,

import java.util.HashMap;

public enum EnumTest {
    E(1),E(2),...,E(2001);

    private static HashMap<Integer, EnumTest>   map = new HashMap<Integer, EnumTest>();

    static {

        for ( EnumTest f : EnumTest.values() ) {
            map.put( (int) f.id, f );
        }
    }
    short id;

    private EnumTest(int id) {
        this.id = (short) id;
    };

    public short getId() {
        return id;
    }

    public static final EnumTest fromInt(int id) {
        EnumTest e = map.get( id );
        if ( e != null ) {
            return …
Run Code Online (Sandbox Code Playgroud)

java enums

14
推荐指数
2
解决办法
3851
查看次数

是否有一种可移植的方式来"选择第一个10*来自T"语义?

我想从数据库中读取10k记录块中的数据.

我在维基百科上发现了结果限制,很明显这不能用sql以便携方式完成.

另一种方法可能是JdbcTemplate,它提供了许多查询方法,但我怎么能确定已经读取了足够的行.通过RowMapper和ResultSetExtractor等回调,无法指出已经读取了足够的数据.

编辑:我正在寻找JdbcTemplate的解决方案这篇文章建议使用我忽略的setMaxRows.

java sql spring jdbc

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