我正在尝试想一个优雅的方法来用Java解决这个问题:
给定一个 0-100 的整数,这是将其转换为枚举的优雅方法,其中枚举的每个可能值对应于一个整数范围。
例如
enum grades{
A -> 90-95%
B -> 85-90%,
C -> 75-85%
...
etc
}
Run Code Online (Sandbox Code Playgroud)
有人能想出一种简洁的方法来编写一个给定 int 返回成绩枚举或抛出 IllegalArgumentException 的方法吗?
根据Hibernate文档的这一部分,我应该能够在HQL中查询任何java类
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-polymorphism
不幸的是,当我运行此查询...
"from Transaction trans where trans.envelopeId=:envelopeId"
Run Code Online (Sandbox Code Playgroud)
我收到消息"事务未映射[来自Transaction trans where trans.envelopeId =:envelopeId]".
Transaction是一个接口,我必须实现它的实体类,我希望在HQL查询中返回一个类型为Transaction的Collection.
IE8中GET请求的URL允许的最大大小是多少?我有一个〜7700个字符的网址,适用于IE以外的所有浏览器.
通常情况下,我会在我选择的集成服务器中显示一个junit测试作为一个通过或失败的测试(在这种情况下,我使用teamcity).我需要进行此特定测试的是能够遍历目录结构测试,我们的数据文件都可以在不抛出异常的情况下进行解析.
因为我们有30,000多个文件,解析这个测试每个1-5秒将在自己的套件中运行.问题是我需要一种方法让一个代码运行作为每个文件的一个junit测试,这样如果30个文件中的12个文件失败,我可以看到哪个12个失败而不仅仅是那个失败,抛出了一个运行时异常并停止了测试.
我意识到这不是一种真正的"单元"测试方式,但这种模拟对于确保我们的内容提供商得到检查并且不检查无效文件非常重要.
有什么建议?
HQL查询可以这样做吗?
"获取UserEntity,其中属性creationTimestamp是所有UserEntities中最新的".
本质上是一个返回我们程序中"最新用户"的查询,其中每个UserEntity都有一个字段映射到数据库中的timestamp列.
目前我有一个在gwt中使用CssResource的应用程序,就像这样......
interface MyClientBundle extends ClientBundle{
@Source("images/one.png")
Image someImageThatAlwaysLooksTheSame();
@Source("images/two.png")
Image someImageThatDependingOnTheClientThemeChanges();
@Source("css/main.css")
MyCssResource css();
}
Run Code Online (Sandbox Code Playgroud)
然后是CssResource接口
interface MyCssResource extends CssResource{
String someStyleThatNeverChanges();
String someStyleThatChangesDependingOnTheClient();
}
Run Code Online (Sandbox Code Playgroud)
如果我重写MyClientBundle来创建和接口名为MyPinkThemedClientBundle
interface MyClientBundle extends ClientBundle{
@Source("images/one.png")
Image someImageThatAlwaysLooksTheSame();
@Source("images/**twoPinkVersion**.png")
Image someImageThatDependingOnTheClientThemeChanges();
@Source("css/**mainPinkVersion**.css")
MyPinkCssResource css();
}
Run Code Online (Sandbox Code Playgroud)
当然,MyPinkCssResource扩展了MyCssResource
interface MyPinkCssResource extends MyCssResource{
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,当我尝试编译它时,GWT编译器抱怨"css/mainPinkVersion.css"缺少样式名称"someStyleThatNeverChanges".我原以为cssresource接口会继承其超类的后备css文件.如果不是这种情况,是否可以实现扩展CssResource并仅覆盖您关心的类但是否使用超类的后备.css文件的效果?
我试图强制用户的地址信息中的州/省和国家名称来自我列出国家和州/省的一组表格.为了做到这一点,我尝试运行这样的alter table命令......
ALTER TABLE User
ADD FOREIGN KEY (stateProvince,country)
REFERENCES `StateProvince`(`name`,`countryName`);
Run Code Online (Sandbox Code Playgroud)
然后我收到这条消息......
使用外键约束创建表'realtorprint_dev/#sql-d5c_3d'失败.引用的表中没有索引,其中引用的列显示为第一列.
有没有人知道如何处理此错误消息?
这是州和国家表的创建......
CREATE TABLE Country (
name varchar(40) NOT NULL,
abbreviation varchar(4) NOT NULL,
PRIMARY KEY (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE StateProvince (
countryName varchar(40) NOT NULL,
name varchar(100) NOT NULL,
abbreviation varchar(3) NOT NULL,
PRIMARY KEY (countryName,name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
alter table StateProvince
add constraint FK_StateProvince_Country
foreign key (countryName)
references Country (name);
Run Code Online (Sandbox Code Playgroud)
现在对于用户表...
create table realtorprint_dev.user (
id bigint not null,
created datetime, …Run Code Online (Sandbox Code Playgroud) 在我们的系统中,我们的数据库如下所示
一个代理商有很多经纪人,一个经纪人有很多用户,一个用户有很多订单.
我正在尝试使用hibernate标准来查找指定经纪商下的所有用户订单.在简单的SQL中,这将非常容易.我可以在条件api中执行此操作吗?我发现在使用点击和过滤器类型时,条件api工作得特别好,因为您可以构建一个非有序的限制列表并将它们添加到条件中.
目前我有这个不起作用
final Session session = (Session) entityManager.getDelegate();
final Brokerage brokerage = userAdmin.loadBrokerage(brokerageId);
@SuppressWarnings({"UnnecessaryLocalVariable", "unchecked"})
final List<UserOrder> userOrders = session
.createCriteria(UserOrder.class)
.add(Restrictions.eq("user.brokerage", brokerage))
.list();
Run Code Online (Sandbox Code Playgroud)
我收到消息"由以下原因引起:org.hibernate.QueryException:无法解析属性:user.brokerage:com.printlogix.rp.server.domain.UserOrder:".
你能将param名称传递给Restrictions.eq,如"object.parentobject.property"吗?
出于某种原因,hibernate没有捕获诸如将实体映射到不存在的表之类的问题.我的persistence.xml文件看起来像这样......
<?xml version="1.0" encoding="UTF-8" ?>
<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">
<!-- A JPA Persistence Unit -->
<persistence-unit name="printLogixJpaUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.printlogix.rp.server.domain.User</class>
<class>com.printlogix.rp.server.domain.UserImage</class>
<class>com.printlogix.rp.server.domain.TemplateInstance</class>
<class>com.printlogix.rp.server.domain.UserOrder</class>
<class>com.printlogix.rp.server.domain.OrderLineItem</class>
<class>com.printlogix.rp.server.domain.OrderStatus</class>
<class>com.printlogix.rp.server.domain.AgencyImage</class>
<class>com.printlogix.rp.server.domain.Agency</class>
<class>com.printlogix.rp.server.domain.Brokerage</class>
<class>com.printlogix.rp.server.domain.SystemTemplate</class>
<class>com.printlogix.rp.server.domain.TemplateType</class>
<class>com.printlogix.rp.server.domain.Product</class>
<class>com.printlogix.rp.server.domain.ProductDefinition</class>
<class>com.printlogix.rp.server.domain.ExpeditedAddress</class>
<class>com.printlogix.rp.server.domain.BrokerageUser</class>
<class>com.printlogix.rp.server.domain.StateProvince</class>
<class>com.printlogix.rp.server.domain.Country</class>
<class>com.printlogix.rp.server.domain.AwardClub</class>
<class>com.printlogix.rp.server.domain.SuperUser</class>
<class>com.printlogix.rp.server.domain.AgencyUser</class>
<class>com.printlogix.rp.server.domain.RememberMe</class>
<class>com.printlogix.rp.server.domain.PasswordResetRequest</class>
<class>com.printlogix.rp.server.domain.SystemTheme</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.show_sql" value="true"/>
<!--Begin Credentials -->
<property name="hibernate.connection.url" value="jdbc:mysql://localhost/realtorprint_dev?autoReconnect=true"/>
<property name="hibernate.connection.username" value="test"/>
<property name="hibernate.connection.password" value="test"/>
<!--End Credentials -->
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)