我有这样一张桌子:
COLUMN TYPE
------------------------------
ID INTEGER
VALUE INTEGER
TIME TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
如何使用HQL选择按时间单位分组的值列的总和(按天分组的fe)并选择此时间单位作为第二列来编写查询.
我试过这样做并得到类似的东西:但是HQL中没有parsedatetime函数所以我不知道如何才能获得正确的查询.
select sum(value),
parsedatetime(day(time) || '.' || month(time) || '.' || year(time) || ' ' || hour(time) ||':00:00', 'dd.MM.yy hh:mm:ss')
as xtime
from Table
group by time
Run Code Online (Sandbox Code Playgroud)
我希望此查询返回带有2个字段的对象:int和java.sql.Date.
我正在尝试实现这样的通用DAO,以将其与X实体(ID,代码,描述)非常相似:
@Repository
public interface GenericDao<T> extends JpaRepository<T, Long> {
T findByCode(String code);
T findById(Long id);
}
Run Code Online (Sandbox Code Playgroud)
我的实体之一是这样的:
@Getter
@Setter
@Entity
@Table(name = "TEST")
public class Test {...}
Run Code Online (Sandbox Code Playgroud)
我有一个需要使用Dao的服务:
@Service
public class TestServiceImpl implements TestService {
private GenericDao<Test> testDao;
@Autowired
public TestServiceImpl(GenericDao<Test> testDao) {
this.testDao = testDao;
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用SpringBoot启动我的应用程序时,该应用程序无法启动,并且错误是:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericDao': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not an managed type: class java.lang.Object
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at …Run Code Online (Sandbox Code Playgroud) 我尝试生成查询类型类(例如QUser)但出现错误...
你可以在这里找到我的源代码:https : //github.com/TheNakedMan/remindme.server/
我正在使用 IntelliJ IDEA,似乎我有工作插件。请帮帮我。
日志消息:
/remindme.server/src/main/java/com/qoobico/remindme/server/repository/UserRepository.java 错误:(21, 126) java:找不到符号符号:类QUser
错误:(25, 62)java:找不到符号符号:类QUser
位置:接口com.qoobico.remindme.server.repository.UserRepository
更新:
之后LifeCycle->clean和运行apt:process中的IntelliJ,我有这样的错误:
[错误] 无法在项目 com.qoobico.remindme.server 上执行目标:无法解析项目 com.qoobico.remindme.server:com.qoobico.remindme.server:war:1.0-SNAPSHOT: 找不到工件 com 的依赖项.qoobico.remindme.server:com.qoobico.remindme.server:jar:1.0-SNAPSHOT
我面临的问题是关于@Autowire存储库接口(在我的情况下是UserRepository),我不知道为什么,但是@Autowire失败了.
UserController类调用一个@Service类而这一次调用@Component(DAO类),在DAO类是@Autowiring所述@Repository.
春季靴子主要
package com.leagueofsummoners;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.ErrorPage;
import org.springframework.boot.orm.jpa.EntityScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.http.HttpStatus;
import com.leagueofsummoners.persistence.interfaces.UserRepository;
@SpringBootApplication
public class LeagueofsummonersApplication {
public static void main(String[] args) {
SpringApplication.run(LeagueofsummonersApplication.class, args);
}
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, …Run Code Online (Sandbox Code Playgroud) 我正在学习Spring,事情进展顺利,但突然遇到这个无法找到合格bean的问题.撞墙,即使在新的应用程序中,我也得到了这个.
如果您需要更多,请告诉我,休息一下!我必须错过一些非常简单的事情.
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [com.alco.repository.ContactRepository]
found for dependency [com.alco.repository.ContactRepository]:
expected at least 1 bean which qualifies as autowire candidate for this dependency.
Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
Run Code Online (Sandbox Code Playgroud)
我的依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
联系班级:
package com.example.entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import …Run Code Online (Sandbox Code Playgroud) 这是我的实体:
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "surname")
private String surname;
@ManyToOne(fetch = FetchType.LAZY, cascade=CascadeType.MERGE)
@JoinColumn(name = "id_city")
private City city;
//...
}
Run Code Online (Sandbox Code Playgroud)
在我的存储库中我有:
public interface UserRepository extends JpaRepository<User, Long>{
@Query("SELECT u FROM User u JOIN FETCH u.city")
public List<User> findAllUserForApi();
}
Run Code Online (Sandbox Code Playgroud)
如果表中有任何城市,findAllUserForApi()则显示有关用户的完整信息:
[{"id":1,"name":"John","surname":"Pillman","city":{"id":1,"name":"New York"}]
Run Code Online (Sandbox Code Playgroud)
如果没有城市,我至少想得到[{"id":1,"name":"John","surname":"Pillman","city":null]
但我什么也没有:[]
请帮帮我。
我正在构建一个使用 JPA (EclipseLink) 提供 JAX-RS REST 服务的应用程序。当通过 JSON 公开用户实体时,我@XmlTransient在某些字段(例如密码字段)上使用注释来将它们从 JSON 表示中隐藏起来。发送创建或更新 (POST/PUT) 操作时,我想再次填充缺失的字段,以便 JPA 正确执行操作。
我目前的方法是我有一个自定义JsonDeserializer,用于反序列化用户并添加缺少的字段。为此,我想注入(使用@Inject)一个UserFacadeREST处理 JPA 内容的bean。但是,此注入失败并且 bean 实例为null(这当然会导致NullPointerException)。
我的UserFacadeRESTbean注释如下:
@Stateless
@LocalBean
@Path(UserFacadeREST.PATH)
public class UserFacadeREST extends AbstractFacade<User> {
//...
}
Run Code Online (Sandbox Code Playgroud)
我的UserDeserilizer(自定义JsonDeserializer):
public class UserDeserializer extends JsonDeserializer<User> {
@Inject
private UserFacadeREST userFacade;
@Override
public User deserialize(JsonParser parser, DeserializationContext context) throws IOException,
JsonProcessingException {
JsonNode node = parser.getCodec().readTree(parser);
int userId = (Integer) …Run Code Online (Sandbox Code Playgroud) 我刚开始使用spring-boot并且一直在不断地在构建我的项目方面取得进展但是我已经到了需要执行特定查询而不是Spring构建的查询的地步.
这是我的@Query的样子:
@Query("select top 1 * from 'table name' where 'column' like 'value' and message like 'value' order by 'column' desc")
Run Code Online (Sandbox Code Playgroud)
由于它与工作有关,我不得不更换我们的数据库特定信息,但我认为你们仍然应该能够了解我正在尝试做什么.我的老板想要这个查询,因为如果没有这样的格式,我们会返回很多结果,我们只想要最新的 - 因此是前1和顺序.
我看到的错误是"<operator>或AS预期,得到'1'",到目前为止,我还没有在Google上找到任何内容.
我在这做错了什么?
我使用spring boot+ jpa从数据库访问数据。数据库是sqlserver。
春季启动版本:1.4.1休眠版本:5.0.11
当我findAll(pageable)用来列出数据时,我收到了以下异常:
java.lang.UnsupportedOperationException: query result offset is not supported
这是我的存储库:
package com.my.home.dao;
import com.didi.home.model.DdForumArticle;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* Created by jacks808@163.com on 2017/1/13.
*/
public interface DdForumArticleRepository extends JpaRepository<DdForumArticle, Integer> {
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码:
import com.didi.home.model.DdForumArticle;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
/**
* Created by jacks808@163.com on 2017/1/13.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Application.class)
public class DdForumArticleRepositoryTest {
@Autowired …Run Code Online (Sandbox Code Playgroud) 例如,我有一本书 JpaRepository。书籍有一个名为 的字段Name,书籍存储库有一个方法findOneByName(与 jpa 存储库方法命名约定相同)。但我需要两个不同的版本来findOneByName在不同的用例中使用。一种版本是带锁注释的,另一种是无锁的。像这样:
public interface BookRepository extends JpaRepository<BookDAO, Long> {
@Lock(LockModeType.READ)
BookDAO findOneByName( String name );
BookDAO findOneByName( String name );
}
Run Code Online (Sandbox Code Playgroud)
在 Spring 中可以实现这一目标吗?如果是的话,调用时如何区分这两个方法。如果没有,是否有另一种方法可以在仍然使用 Spring JPA 存储库接口(如 findOneBy***)的情况下完成此操作。
java ×8
spring ×8
hibernate ×5
spring-boot ×2
cdi ×1
generics ×1
hql ×1
jackson ×1
jdbctemplate ×1
jpa ×1
json ×1
maven ×1
orm ×1
querydsl ×1
spring-data ×1
spring-mvc ×1