显然,''在 VARCHAR 列中插入空字符串 ( ) 时,Sybase(在 ASE 15.7 中测试)会插入一个空格字符。实验我验证了该选项ansinull对这种行为没有任何影响:
> set ansinull on
> create table a (a1 varchar(1))
> insert into a(a1) values ('')
> select a1, len(a1) as 'len(a1)', datalength(a1) as 'datalength(a1)',
ascii(a1) as 'ascii(a1)', char_length(a1) as 'char_length(a1)'
from a
> go
(1 row affected)
a1 len(a1) datalength(a1) ascii(a1) char_length(a1)
-- ----------- -------------- ----------- ---------------
1 1 32 1
(1 row affected)
>
>
> drop table a
> go
> set ansinull off …Run Code Online (Sandbox Code Playgroud) 模块Unix包含时间 函数来获取自Epoch以来的秒数,但是有一种独立于平台的方法来获得相同的值并确保代码在非Unix部署中编译吗?
我最近遇到了以下模式的实例:
public interface IFooFactory {
<K> Foo<K> create();
}
Run Code Online (Sandbox Code Playgroud)
请看这里的具体例子.我没有看到客户端程序员在创建除了实例化Foo之外应该做什么,而是使用Object的正式类型参数或者根本没有正式的类型参数.我也没有看到框架设计者试图通过这种方式定义接口IFooFactory来表达的好处或类型约束.
我似乎在使用以下 JPA 片段将PostgreSQL 货币类型映射到java.util.Currency类型时遇到问题:
@Basic(optional = true)
@Column(name = "cafl_bubgeted_amount")
private Currency bubgetedAmount;
Run Code Online (Sandbox Code Playgroud)
列cafl_budgeted_amount是PostgreSQL 中的money类型。
在 JBoss AS 7.1.1 中部署代码时,我得到了帖子末尾显示的跟踪信息。有人处理过那个映射吗?
引起:java.lang.IllegalArgumentException
在 java.util.Currency.getInstance(Currency.java:303) [rt.jar:1.7.0_07]
在 java.util.Currency.getInstance(Currency.java:284) [rt.jar:1.7.0_07]
在 org.hibernate.type.descriptor.java.CurrencyTypeDescriptor.wrap(CurrencyTypeDescriptor.java:66) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.type.descriptor.java.CurrencyTypeDescriptor.wrap(CurrencyTypeDescriptor.java:35) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:66) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:65) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:269) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:265) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:238) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:357) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2695) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1552) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1484) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.loader.Loader.getRow(Loader.java:1384) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:640) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
在 … 我对我一直认为理所当然的事情有了第二个想法.即,在具有以下结构的EAR中:
EAR
\-- boo-ejb.jar
\-- foo-web.war
| \--WEB-INF
| \--lib
\--lib
Run Code Online (Sandbox Code Playgroud)
..我想我理解正确的是WEB-INF/lib目录是罐子只能由Web应用程序和EAR级别所需的lib的罐子被需要ejb.jar为好.理由是以某种方式使依赖关系更清晰.但是,为什么不将所有内容转储到EAR级别的lib文件夹中?当然,如果存在某种冲突,我们希望深入了解和调查.这不是一个更清洁的解决方案,更不容易掩盖潜在的兼容性/依赖性不匹配问题吗?
有没有办法将Clojure表单转换为字符串?例如转换:
(and (f 1) (g 3))
Run Code Online (Sandbox Code Playgroud)
至:
"(and (f 1) (g 3))"
Run Code Online (Sandbox Code Playgroud) 是否有核心功能或一些惯用的方式来对集合进行"反向展平"?我想要以下内容:
(by-two '(1 2 3 4 5 6)) ; evals to '( (1 2) (3 4) (5 6) )
Run Code Online (Sandbox Code Playgroud)
当然,上述情况下的形式需要偶数个元素,或者如果出现奇数编号的集合,函数应该做一些合理的事情.当然,广义的by-n函数会更好.我不清楚尝试深入概括这个概念是否有任何优点,或者最好的形式是什么:
(by [2 2] '(1 2 3 4 5 6 7 8)) ; evals to '( ( (1 2) (3 4) ) ( (5 6) (7 8) ) )
(by [3 2 1 1 1] '(1 2 3 4 5 6)) ; evals to '(((((1 2 3) (4 5 6)))))
Run Code Online (Sandbox Code Playgroud) 代码如下:
import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class FooMain {
private static final DateFormat DF = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
public static void main(String args[]) {
System.out.println(DF.format(new Date(0)));
}
}
Run Code Online (Sandbox Code Playgroud)
打印出来:
1970-01-01T01:00Z
Run Code Online (Sandbox Code Playgroud)
难道1970-01-01T00:00Z不是吗?我知道Unix Epoch时间总是毫不含糊,我们不必担心时区,但这是我的时区,如果它很重要:
$ cat /etc/timezone
Europe/Madrid
Run Code Online (Sandbox Code Playgroud) 我有以下非感性*.clj文件:
(ns bar.zar.Foo
(:gen-class :main true))
(println "foo")
(defn -main [& args]
nil)
Run Code Online (Sandbox Code Playgroud)
使用以下Ant目标将其编译为*.class(clojure.lang.Compile)时:
<target name="compile-clojure" description="Compile Clojure sources." depends="resolve">
<mkdir dir="${cljbuild.dir}"/>
<java classname="clojure.lang.Compile"
failonerror="true"
fork="true">
<classpath refid="compile.classpath"/>
<sysproperty key="clojure.compile.path" value="${cljbuild.dir}"/>
<arg value="${project.MainClass.name}"/>
</java>
</target>
Run Code Online (Sandbox Code Playgroud)
我在输出上看到:
[java] Compiling bar.zar.Foo to /home/[ommitted]/build
[java] foo
Run Code Online (Sandbox Code Playgroud)
也就是说,(println "foo")在编译期间评估表达式.这是为什么?是否与"Lisp模糊编译时/运行时区别"有关?
从我的JAX-RS(Jersey)资源内部,我需要获取Jersey Servlet"发布"该资源的基本URL .我ServletContext按照这里描述尝试注射,然后执行:
return servletContext.getResource("/").toString();
Run Code Online (Sandbox Code Playgroud)
获取Servlet此资源的Jersey的"基本"URL .
但是,上面的代码返回一个值,如:
jndi:/localhost/jax-rs-tomcat-test/
Run Code Online (Sandbox Code Playgroud)
我期待更多的东西:
http://localhost:8080/jax-rs-tomcat-test/jax-rs
Run Code Online (Sandbox Code Playgroud)
" jax-rs"是我在web.xml中的位置:
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/jax-rs/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
也就是说,存在四个"差异":(a)协议,(b)协议之后的单个而不是双斜杠,(c)端口号和(d)用于触发Jersey servlet的URL模式缺失.那么,我该怎么做:
http://Jersey servlet 的基本URL@GET或带@POST注释方法的完整URL ?