我们使用spring数据,其中最重要的是能够使用提供的接口(例如CrudRepository)而不必实际实现东西.
我们已经意识到我们需要采取措施来确保我们的应用:
对我来说,最合乎逻辑的地方似乎是在我们所有的repos共享的通用db方法中的某个地方.但是因为它们没有在我们的代码中的任何地方实现,所以我不知道这是否已经在spring数据中实现了.
我正在使用Spring Data和QueryDSL,如Gierke在他的博客文章中所述.一切都在工作,并且实现起来相对简单,但我现在已达到了一个需要分页和排序的数据视图.但是,似乎必须选择其中一个.为什么是这样?是否真的没有办法同时获得两者?到目前为止,我们已经花费了大量时间和精力来实现所有目标,如果陷入这样一个看似简单的任务,那将是一种耻辱.
简而言之,我需要创建一个方法,该方法采用QueryDSL谓词,可分页和某种形式的排序对象来提供过滤,分页和排序的结果.
任何信息,将不胜感激.
我遇到了使用复合主键的hibernate实体集的问题.
我们的应用程序中有一个"目标"概念.目标ID应该是其他三个表(实体)主要ID的组合.目标也有一个int taget.员工应该有一系列目标.SQL看起来像这样:
CREATE TABLE IF NOT EXISTS `target` (
`role_id` bigint(20) NOT NULL,
`ApplicationPeriod_id` bigint(20) NOT NULL,
`project_class_id` bigint(20) NOT NULL,
`target` int(11) NOT NULL,
PRIMARY KEY (`role_id`,`ApplicationPeriod_id`,`project_class_id`),
KEY `fk_role_id` (`role_id`),
KEY `fk_ApplicationPeriod_id` (`ApplicationPeriod_id`),
KEY `fk_project_class_id` (`project_class_id`),
KEY `FKCB7E71918717386C` (`project_class_id`),
KEY `FKCB7E7191BEC322C1` (`ApplicationPeriod_id`),
KEY `FKCB7E71917B617197` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)
这个SQL工作正常,只要applicationperiodid和projectclassid不同,它允许每个role_id(Employee)有多个目标.
这是targetID类
@Embeddable
public class TargetId implements Serializable {
@ManyToOne
private Employee employee;
@ManyToOne
private ApplicationPeriod applicationPeriod;
@ManyToOne
private ProjectClass projectClass;
public Employee getEmployee() {
return employee;
}
public …Run Code Online (Sandbox Code Playgroud) 来自http://learnyouahaskell.com/making-our-own-types-and-typeclasses
data Person = Person { name :: String
, age :: Int
} deriving (Show)
Run Code Online (Sandbox Code Playgroud)
在一个真实的应用程序中,使用像String和Int这样的原语作为名称和年龄将构成原始的痴迷,代码气味.(显然,出生日期优于国际时代,但让我们忽略它)相反,人们更喜欢像
newtype Person = Person { name :: Name
, age :: Age
} deriving (Show)
Run Code Online (Sandbox Code Playgroud)
在OO语言中,这看起来像
class Person {
Name name;
Age age;
Person(Name name, Age age){
if (name == null || age == null)
throw IllegalArgumentException();
this.name = name;
this.age = age;
}
}
class Name extends String {
Name(String name){
if (name == null || name.isEmpty() || name.length() > 100) …Run Code Online (Sandbox Code Playgroud) 在
application.properties
Run Code Online (Sandbox Code Playgroud)
我们有线路
spring.profiles.active=LOCALHOST
Run Code Online (Sandbox Code Playgroud)
在
application-DEV.properties
Run Code Online (Sandbox Code Playgroud)
,我们有这条线
spring.profiles.active=DEV,dbcache,metrics,AWS
Run Code Online (Sandbox Code Playgroud)
. 运行应用程序时
java -jar app.war -Dspring.profiles.active=DEV
Run Code Online (Sandbox Code Playgroud)
控制台输出说
The following profiles are active: LOCALHOST
Run Code Online (Sandbox Code Playgroud)
,即
-Dspring.profiles.active=DEV
Run Code Online (Sandbox Code Playgroud)
参数不被接受,应用程序仍然使用默认的 LOCALHOST 配置文件。
我正在开发一个Web应用程序,我们将代码和Web资源(如css,图像文件等)分开.
我这里有一个文件:
项目root/src/main/webapp/images/icons/16/add.png
在这个位置:
项目root/src/main/java/se/su/dsv/scipro/icons
我有一个这样的课:
package se.su.dsv.scipro.icons;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.image.Image;
import org.apache.wicket.model.Model;
public class ImageIcon extends Image {
private static final long serialVersionUID = 1L;
public static final String ICON_NEW_ADD = "../../../../../../webapp/images/icons/16/add.png";
public ImageIcon(String id, String name, String size, String alt){
super(id, new ResourceReference(ImageIcon.class, name));
if(alt != null){
add(new AttributeAppender("alt", true, new Model<String>(alt), " "));
}
else {
add(new AttributeAppender("alt", true, new Model<String>(name), " "));
}
}
public ImageIcon(String id, String name){
this(id, name, "", null); …Run Code Online (Sandbox Code Playgroud) java ×4
spring ×2
spring-data ×2
haskell ×1
hibernate ×1
primitive ×1
spring-boot ×1
types ×1
wicket ×1