我正在阅读"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_
嗨,我有一个问题,我知道这是多次发布,但我没有找到我的问题的答案.问题是我有一个表和一列"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)
是否应该或是否还有其他事情要做?
我目前正在使用RichFaces评估Java EE 6/JSF 2.1.
声明为的bean
@ManagedBean
@ViewScoped
Run Code Online (Sandbox Code Playgroud)
由于CDI bean没有ViewScope,我试图将bean声明为:
@Named
@ConversationScoped
Run Code Online (Sandbox Code Playgroud)
现在,处理在步骤3中失败,因为步骤1中设置的值(已选中)不再可用.
我必须使用Conversation.begin()
和Conversation.end()
方法吗?
如果是这样,哪里可以调用它们的好地方?
我想将一些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) 经过一些实验,我将一个空的(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 …
在Java中,是否有一种方法(在运行时)获取定义特定类的字节码?
换句话说,有没有办法获取在加载特定类时byte[]
传递给的数组ClassLoader.defineClass(String name, byte[] b, int off, int len)
?我看到声明了这个方法final
,因此创建一个ClassLoader
拦截类定义的自定义似乎是不可能的.
在过去,我已经使用类ClassLoader
来通过该getResourceAsStream(String)
方法获取字节码,但我更喜欢更规范的解决方案.
在某些代码中,我正在创建一个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) 我想创建一个线程池,它将执行最近提交的任务.关于如何实现这一目标的任何建议?
谢谢
以下代码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) 我想从数据库中读取10k记录块中的数据.
我在维基百科上发现了结果限制,很明显这不能用sql以便携方式完成.
另一种方法可能是JdbcTemplate,它提供了许多查询方法,但我怎么能确定已经读取了足够的行.通过RowMapper和ResultSetExtractor等回调,无法指出已经读取了足够的数据.
编辑:我正在寻找JdbcTemplate的解决方案这篇文章建议使用我忽略的setMaxRows.
java ×8
jpa ×2
bytecode ×1
c# ×1
cdi ×1
criteria-api ×1
enums ×1
hibernate ×1
java-ee ×1
jdbc ×1
jsf ×1
jsf-2 ×1
list ×1
postgresql ×1
runtime ×1
seam ×1
spring ×1
sql ×1
threadpool ×1
view-scope ×1