我有一个Spring MVC Controller,它返回一个JSON String,我想将mimetype设置为application/json.我怎样才能做到这一点?
@RequestMapping(method=RequestMethod.GET, value="foo/bar")
@ResponseBody
public String fooBar(){
return myService.getJson();
}
Run Code Online (Sandbox Code Playgroud)
业务对象已经可以作为JSON字符串使用,因此使用MappingJacksonJsonView
对我来说不是解决方案.@ResponseBody
是完美的,但我怎样才能设置mimetype?
对于一个新项目,JPA始终是处理关系数据的推荐工具,还是有些情况下Spring JdbcTemplate是更好的选择?您的回复中需要考虑的一些因素:
我想知道一个班级是否是一个Enum,但我想我错过了一些东西:
if (test.MyEnum.class instanceof Enum<?>.class)
obj = resultWrapper.getEnum(i, test.MyEnum.class);
else
obj = resultWrapper.getObject(i);
Run Code Online (Sandbox Code Playgroud)
它给我一个错误,说Enum.class无效.那我怎么能检查一个类是否是一个枚举?我很确定有可能确定,我只是无法得到它.
谢谢
我正在设计一个基于JPA/Hibernate,Spring和Wicket的新应用程序.DAO和服务层之间的区别对我来说并不清楚.根据维基百科,DAO是
一个对象,它为某种类型的数据库或持久性机制提供抽象接口,提供一些特定的操作而不暴露数据库的细节.
我想知道DAO是否可以包含对数据访问没有太多帮助的方法,但使用查询更容易执行?例如"获取在某些机场运营的所有航空公司的清单"?听起来我更多的是服务层方法,但我不确定在服务层中使用JPA EntityManager是否是良好实践的一个例子?
如何将特定的HashMap条目移动到Last位置?
例如,我有像这样的HashMap值:
HashMap<String,Integer> map = new HashMap<String,Integer>();
map= {Not-Specified 1, test 2, testtest 3};
Run Code Online (Sandbox Code Playgroud)
"未指定"可能处于任何位置.它可能首先出现在地图的中间.但我想把"未指定"移到最后一个位置.
我怎样才能做到这一点?提前致谢.
我似乎遇到了在Hibernate中映射List的问题.在我们的项目中有一类Card
用含有类Answer
与Answer
含有List<String>
.
是否可以List<String>
通过Hibernate使用注释进行映射?我的意思是,因为它没有@Entity
注释?
问候
我已经实现了Spring RESTful Web服务.使用Jackson JSON进行对象映射.我有一个接受两个参数的方法.
public Person createPerson(
@RequestBody UserContext userContext,
@RequestBody Person person)
Run Code Online (Sandbox Code Playgroud)
客户端如何构造一个请求,其中多个JSON对象将在正文中传递?
这可能吗?
- 斯里兰卡
我们使用spring 3.1的新环境配置文件功能.我们当前通过在部署应用程序的服务器上设置环境变量spring.profiles.active = xxxxx来设置活动配置文件.
我们认为这是一个次优的解决方案,因为我们要部署的war文件应该只有一个额外的属性文件,该文件设置spring应用程序上下文应该加载的环境,因此部署不依赖于服务器上设置的某些env var.
我试图弄清楚如何做到这一点并发现:
ConfigurableEnvironment.setActiveProfiles()
我可以用来以编程方式设置配置文件,但后来我仍然不知道在何时何地执行此代码.弹簧环境加载的地方?我可以从属性文件加载我想传递给方法的参数吗?
更新:我刚刚在docs上找到了我可以实现设置活动配置文件的内容?
在多模块maven项目中,是否有一个指向根项目文件夹的变量?
${project.basedir}
指向当前项目的目录,${project.parent.basedir}
指向父项目的目录, 但是有一个变量总是指向根目录(执行maven命令的目录),无论反应堆内的哪个项目?
我意识到我想要解决的问题几乎无法解决.我想要一个指向project.basedir,project.parent.basedir,project.parent.parent.basedir等的变量,以较高者为准.但是由于项目的父pom不一定是文件系统中的父项,我的整个方法都无济于事.所以我接受Pascal的答案,因为它回答了我的问题(即使我的问题没有解决我的问题).
我一直在JPA 1.0(Hibernate驱动程序)中使用Hibernate Restrictions.定义了Restrictions.ilike("column","keyword", MatchMode.ANYWHERE)
哪些测试关键字是否匹配列的任何位置,并且它不区分大小写.
现在,我使用JPA 2.0和EclipseLink作为驱动程序,因此我必须使用"Restrictions"内置JPA 2.0.我发现CriteriaBuilder
和方法like
,我也发现了如何使它匹配任何地方(尽管它是令人讨厌和手动),但我仍然没有想出如何做它不区分大小写.
我目前有一个很好的解决方案:
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<User> query = builder.createQuery(User.class);
EntityType<User> type = em.getMetamodel().entity(User.class);
Root<User> root = query.from(User.class);
// Where
// important passage of code for question
query.where(builder.or(builder.like(root.get(type.getDeclaredSingularAttribute("username", String.class)), "%" + keyword + "%"),
builder.like(root.get(type.getDeclaredSingularAttribute("firstname", String.class)), "%" + keyword + "%"),
builder.like(root.get(type.getDeclaredSingularAttribute("lastname", String.class)), "%" + keyword + "%")
));
// Order By
query.orderBy(builder.asc(root.get("lastname")),
builder.asc(root.get("firstname")));
// Execute
return em.createQuery(query).
setMaxResults(PAGE_SIZE + 1).
setFirstResult((page - 1) * PAGE_SIZE).
getResultList();
Run Code Online (Sandbox Code Playgroud)
问题: …
java ×8
spring ×5
jpa ×2
json ×2
spring-mvc ×2
annotations ×1
architecture ×1
controller ×1
criteria ×1
dao ×1
eclipselink ×1
enums ×1
environment ×1
hashmap ×1
hibernate ×1
instanceof ×1
jackson ×1
jdbctemplate ×1
jpa-2.0 ×1
list ×1
maps ×1
maven-2 ×1
profiles ×1
spring-jdbc ×1
string ×1