我遇到了hibernate的问题.我最近将我的hbm2ddl设置为validate,并且它一直在抱怨错误的数据类型.除了布尔语,我已解决了所有问题.
opener我的班级中有一个字段,映射为:
<property column="opener" name="opener" type="boolean"/>
Run Code Online (Sandbox Code Playgroud)
列opener是a tinyint (4)并且值为1或0.到目前为止,我已尝试更改类型,但无济于事.我也尝试在hibernate.cfg中使用以下设置:
<property name="hibernate.query.substitutions">true 1, false 0</property>
Run Code Online (Sandbox Code Playgroud)
但我仍然得到同样的错误.我究竟做错了什么?
org.hibernate.HibernateException: Wrong column type: opener, expected: bit
at org.hibernate.mapping.Table.validateColumns(Table.java:261)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1083)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:116)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:317)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
Run Code Online (Sandbox Code Playgroud)
注意:我无法访问数据库.
我本地Nexus存储库中的一些工件没有正确的校验和.例如(错误的校验和):
cat central/org/codehaus/plexus/plexus-compiler-api/1.8/plexus-compiler-api-1.8.pom.sha1 95f3332c2bbace129da501424f297e47dd0e976b
vs(正确的校验和):
sha1sum central/org/codehaus/plexus/plexus-compiler-api/1.8/plexus-compiler-api-1.8.pom 4c2947f7e2d09b6e13da34292d897c564f1f9828
看起来我的存储库中有一些工件在此错误处于活动状态时已下载.
Maven Central现在有正确的校验和(4c29 ...),但我本地Nexus存储库中的校验和仍然过时.我不知道如何让我的本地存储库验证和/或从中央重新下载正确的校验和.
修复本地存储库的正确方法是什么.这个问题并没有太多的工件,所以我认为我可以(手动)验证它们仍然存在于中央并从我的本地存储库中删除它们.应该使用正确的校验和重新缓存它们.有没有更好的办法?
更新:
我更多地看了这个,我几乎是肯定的,我知道我的问题的根源是什么.我遇到问题的其中一件工件就是这个(plexus-compiler-api:1.8):
在我的存储库中,.pom和.pom.sha1都被加上时间戳为2010年3月29日.在中央,.pom的时间戳为2010年3月29日,而.pom.sha1的时间戳为2010年4月21日.我正在阅读关于Nexus维护的内容.我假设,在2010年4月21日,Maven Central重建了元数据并验证了校验和,这些校验和修复了plexus-compiler-api:1.8工件的错误.sha1.
根据上面的Sonatype链接,我应该能够使Maven Central的缓存过期,并让我的本地安装使用比最初缓存的工件更新的时间戳来提取新副本.但是,基于我观察到的行为,我认为它只检查工件文件的时间戳,而不是校验和文件.
就我当地的Nexus存储库而言,我拥有该工件的最新版本(2010年3月29日),因此无需重新下载任何内容.
我注意到我的Nexus版本已经很老了(1.5 vs 1.9.1),所以我会尝试更新,看看新版本是否能更好地过期缓存.如果没有,我可能会看到Sonatype的想法(也许这是一个错误?).
我正在使用maven构建一个Web应用程序项目,并且打包设置为"war".我还使用YUI压缩器插件来压缩webapp目录中的javascript代码.我已经设置了YUI压缩器,如下所示:
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.3.0</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>**/ext-2.0/**/*.js</exclude>
<exclude>**/lang/*.js</exclude>
<exclude>**/javascripts/flot/*.js</exclude>
<exclude>**/javascripts/jqplot/*.js</exclude>
</excludes>
<nosuffix>true</nosuffix>
<force>true</force>
<jswarn>false</jswarn>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
如果我这样做:mvn process-resources,src/main/webapp将被复制到target/webapp-1.0 /目录,并压缩javacripts.但是,当我运行mvn install时,所有压缩的javascripts都会被覆盖,显然打包过程会在构建war文件之前从main/webapp复制一次内容.
我怎么能绕过这个?
Heroku支持基于Maven部署Java应用程序
如果需要在公共maven存储库中不可用的lib,它们还会为应用程序部署提供建议
但是:我有两个Maven项目,其中一个依赖于另一个.当我在本地mvn安装依赖工件时,我可以mvn打包另一个,一切正常.但是,我无法将其推送到heroku,因为heroku无法访问我当地的mvn repo.
我能做什么?是否有必要在网络上设置一个可以通过heroku访问的私有maven仓库(例如神器),还是有其他方法来部署这样一个具有自定义依赖heroku的应用程序?
谢谢.
当用户输入"N"或"n"时,我想退出while循环.但它不起作用.它适用于一种情况,但不适用于两种情况.
import java.util.Scanner;
class Realtor {
public static void main (String args[]){
Scanner sc = new Scanner(System.in);
char myChar = 'i';
while(myChar != 'n' || myChar != 'N'){
System.out.println("Do you want see houses today?");
String input = sc.next();
myChar = input.charAt(0);
System.out.println("You entered "+myChar);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Google App Engine Java Search API,但它无法按预期工作.实际上python和java搜索有所不同.
当我搜索"tes"时,python会在所有文档中生成"test"而不是java.这是java sdk中的一个错误,我使用1.7.4?
我做了一些搜索,试图了解java源文件是如何执行的.我找不到一个明确的答案,说明从JRE和JDK术语开始到结束的步骤.所以我在不同的博客上写下我理解的内容,但有些空白确实存在.对我的理解的更正是最受欢迎的.标记为Q1和Q2的两个问题低于第2点.
写一个HellowWorld.java文件
javac HelloWowrld.java给出了HelloWorld.class.那就是它给出了一个字节代码的类文件.现在我可以把这个在Mac中生成的字节码转到windows机器并运行它应该可以正常工作.
Q1:现在这个编译为字节代码,这真的是编译还是解释?
Q2:Javac必须是JDK而不是JRE的一部分吗?
JRE包含JVM和其他库来创建运行时环境.JVM(它本身是平台相关的)执行字节码到机器代码.即时编译器实际上是JVM的一部分,它将字节码的实际编译部分转换为机器代码,并在必要时加上缓存字节代码.
我正在研究使用Flask-Upload进行图像上传的示例,但是当我运行代码时,python说:
"ImportError:没有名为flask.ext.storage的模块"
(我使用pip成功安装了Flask,SQLAlchemy,Flask-Upload)
以下是我在myproject上安装的所有软件包:
)
我用谷歌搜索,但我找不到任何方法来解决这个问题.
我们如何修复Reliance on default encodingfindBugs 的报告:
StringBuffer printData = getPrintData(data);
try {
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(new File(linkName)));
out.write(printData.toString());
out.flush();
final FileInputStream f = new FileInputStream(new File(linkName));
return f;
} catch (final IOException ioe) {
ioe.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用写文件StreamWriter.
java ×5
maven ×2
artifactory ×1
compilation ×1
deployment ×1
findbugs ×1
flask ×1
hbm ×1
hbm2ddl ×1
heroku ×1
hibernate ×1
java-me ×1
maven-2 ×1
nexus ×1
python ×1
while-loop ×1