diff --git a/ace-blog-parent/ace-blog-admin/pom.xml b/ace-blog-parent/ace-blog-admin/pom.xml index d1a712041f685face951e53e7706735de2d4baf8..63e656ff214d4936a08fb0ba2bbecefdfb922109 100644 --- a/ace-blog-parent/ace-blog-admin/pom.xml +++ b/ace-blog-parent/ace-blog-admin/pom.xml @@ -5,11 +5,16 @@ ace-blog-parent org.springframework.boot - 1.4.2.RELEASE + 1.5.2.RELEASE 4.0.0 ace-blog-admin + + true + 1.8 + + 1.1.4 1.5.12 @@ -84,17 +89,22 @@ 5.1.30 - - + - org.mybatis - mybatis - ${mybatis.version} + org.springframework.boot + spring-boot-starter-data-jpa - org.mybatis - mybatis-spring - ${mybatis.spring.version} + org.springframework.boot + spring-boot-starter-jdbc + + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 1.3.0 @@ -151,8 +161,21 @@ guava 20.0 + + + + org.jetbrains.kotlin + kotlin-stdlib-jre8 + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-reflect + ${kotlin.version} + + ${project.basedir}/src/main/java blog-admin @@ -183,6 +206,41 @@ org.springframework.boot spring-boot-maven-plugin + + + kotlin-maven-plugin + org.jetbrains.kotlin + ${kotlin.version} + + + spring + + 1.8 + + + + compile + compile + + compile + + + + test-compile + test-compile + + test-compile + + + + + + org.jetbrains.kotlin + kotlin-maven-allopen + ${kotlin.version} + + + \ No newline at end of file diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/BlogAdminBootstrap.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/BlogAdminBootstrap.java index 6910032ddaa5a4d820d6c416c33b31bd41c59264..10afd29b25fa1411cdf6b857447875cdef1b4ea2 100644 --- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/BlogAdminBootstrap.java +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/BlogAdminBootstrap.java @@ -1,9 +1,12 @@ package com.github.wxiaoqi.blog.admin; +import com.github.wxiaoqi.blog.admin.repository.BaseRepositoryFactoryBean; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.hystrix.EnableHystrix; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; /** * ${DESCRIPTION} @@ -14,6 +17,8 @@ import org.springframework.cloud.netflix.hystrix.EnableHystrix; @EnableEurekaClient @EnableHystrix @SpringBootApplication +@MapperScan(basePackages = "com.github.wxiaoqi.blog.admin.mapper") +@EnableJpaRepositories(repositoryFactoryBeanClass = BaseRepositoryFactoryBean.class) public class BlogAdminBootstrap { public static void main(String[] args) { new SpringApplicationBuilder(BlogAdminBootstrap.class).web(true).run(args); } diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/biz/BlogBiz.kt b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/biz/BlogBiz.kt new file mode 100644 index 0000000000000000000000000000000000000000..a484113daba6b4da3ffbd9574813810a1528bf14 --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/biz/BlogBiz.kt @@ -0,0 +1,52 @@ +package com.github.wxiaoqi.blog.admin.biz + +import com.github.wxiaoqi.blog.admin.dao.BlogDao +import com.github.wxiaoqi.blog.admin.entity.Blog +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.data.domain.Page +import org.springframework.data.domain.Pageable +import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Propagation +import org.springframework.transaction.annotation.Transactional + +/** + * 博客服务层 + * @author colin + */ +@Service +class BlogBiz{ + + @Autowired + private var blogDao: BlogDao? = null + + /** + * 新增/修改 + * @return 新增/修改后的对象 + */ + fun save(blog: Blog): Blog{ + return blogDao!!.save(blog) + } + + /** + * 根据id修改名称 + */ + @Transactional(rollbackFor = arrayOf(Exception::class),propagation = Propagation.REQUIRED) + fun updateNameById(id: Int,name: String){ + val blog = blogDao!!.findOne(id) + //jpa查询出对象后,使用事务进行提交,不需要再写save方法 + blog.name = name + } + + /** + * 根据名称like并选出博主年龄大于25岁的 + * 返回值可为空 + */ + fun findByNameLike(name: String): List? { + //fiter是kotlin的一个高阶函数,简化了jdk8的lambda表达式的stream().filter + return blogDao!!.findByNameContaining(name).filter { it.user != null && it.user.age > 25 } + } + + fun findByArticlesTitleIn(titles: List,pageable: Pageable): Page{ + return blogDao!!.findByArticlesTitleIn(titles,pageable) + } +} \ No newline at end of file diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MapperConfiguration.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MapperConfiguration.java index 86a3fcf8f4f44f1d8830931365dc5a1635270ff6..a0dbf15b44d56f62ca4a51c4398f78e904b8808e 100644 --- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MapperConfiguration.java +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MapperConfiguration.java @@ -15,9 +15,10 @@ import tk.mybatis.spring.mapper.MapperScannerConfigurer; * @author wanghaobin * @date 2016年12月15日 * @since 1.7 + * 使用配置文件配置 */ -@Configuration -@AutoConfigureAfter(MybatisConfiguration.class) +//@Configuration +//@AutoConfigureAfter(MybatisConfiguration.class) public class MapperConfiguration implements EnvironmentAware { private RelaxedPropertyResolver propertyResolver; diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MybatisConfiguration.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MybatisConfiguration.java index a458a1bcb51cdcb09a9cd6df9b53965b0f727a0d..2c49ac01f03331044c4435e6b40a786c4ba0ba2d 100644 --- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MybatisConfiguration.java +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MybatisConfiguration.java @@ -28,9 +28,10 @@ import java.util.Properties; * @author wanghaobin * @date 2016年12月15日 * @since 1.7 + * 使用配置文件配置 */ -@Configuration -@EnableTransactionManagement +//@Configuration +//@EnableTransactionManagement public class MybatisConfiguration implements EnvironmentAware { @@ -95,6 +96,9 @@ public class MybatisConfiguration implements EnvironmentAware { if(StringUtils.isNotBlank(typeAliasesPackage)){ bean.setTypeAliasesPackage(typeAliasesPackage); } + org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); + configuration.setMapUnderscoreToCamelCase(true); //启用驼峰命名 + bean.setConfiguration(configuration); //分页插件 PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); @@ -108,7 +112,7 @@ public class MybatisConfiguration implements EnvironmentAware { Interceptor[] plugins = new Interceptor[]{pageHelper}; bean.setPlugins(plugins); try { - bean.setMapperLocations(resolver.getResources(xmlLocation)); +// bean.setMapperLocations(resolver.getResources(xmlLocation)); 取消xml引入,使用注解 return bean.getObject(); } catch (Exception e) { e.printStackTrace(); @@ -140,7 +144,9 @@ public class MybatisConfiguration implements EnvironmentAware { this.testOnReturn = propertyResolver.getProperty("spring.datasource.testOnReturn"); this.poolPreparedStatements = propertyResolver.getProperty("spring.datasource.poolPreparedStatements"); this.maxOpenPreparedStatements = propertyResolver.getProperty("spring.datasource.maxOpenPreparedStatements"); - this.typeAliasesPackage = propertyResolver.getProperty("mybatis.typeAliasesPackage"); +// this.typeAliasesPackage = propertyResolver.getProperty("mybatis.typeAliasesPackage"); + //修改扫描包的地址 + this.typeAliasesPackage = propertyResolver.getProperty("com.github.wxiaoqi.blog.admin.entity"); this.xmlLocation = propertyResolver.getProperty("mybatis.xmlLocation"); } diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/dao/BlogArticleDao.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/dao/BlogArticleDao.java new file mode 100644 index 0000000000000000000000000000000000000000..0d7a06bd05e09e23a3ab8f54224a088b1a005314 --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/dao/BlogArticleDao.java @@ -0,0 +1,11 @@ +package com.github.wxiaoqi.blog.admin.dao; + +import com.github.wxiaoqi.blog.admin.entity.BlogArticle; +import com.github.wxiaoqi.blog.admin.repository.BaseRepository; + +/** + * + * @author colin + */ +public interface BlogArticleDao extends BaseRepository { +} diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/dao/BlogDao.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/dao/BlogDao.java new file mode 100644 index 0000000000000000000000000000000000000000..b800137836617f87cc0713eb1bc98facb1707c7a --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/dao/BlogDao.java @@ -0,0 +1,49 @@ +package com.github.wxiaoqi.blog.admin.dao; + +import com.github.wxiaoqi.blog.admin.entity.Blog; +import com.github.wxiaoqi.blog.admin.repository.BaseRepository; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.Query; +import org.springframework.jdbc.core.JdbcTemplate; + +import java.util.List; +import java.util.Map; + +/** + * + * @author colin + */ +public interface BlogDao extends BaseRepository { + + /** + * 根据博客中博文的标题在某个范围查询 + * @param titles 多个标题 + * @return + */ + Page findByArticlesTitleIn(List titles,Pageable pageable); + + /** + * 相当于 name like '%?%' + * @param name + * @return + */ + List findByNameContaining(String name); + + /** + * 使用nativeQuery不能使用jpa的自动分页pageable + * @return + */ + @Query(value = "select * from blog where name = ?1",nativeQuery = true) + List findBySqlName(); + + /** + * 使用jdbc查询,需要jdk 1.8 + * 可以根据需要传入jdbcTemplate也可以传入jpa的entityManager,在service层中@Autowired + */ + default List> findByJdbc(JdbcTemplate template, Pageable pageable){ + StringBuffer sql = new StringBuffer("select * from blog "); + sql.append("limit "+pageable.getOffset()+","+pageable.getPageSize()); + return template.queryForList(sql.toString()); + } +} diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/dao/BlogUserDao.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/dao/BlogUserDao.java new file mode 100644 index 0000000000000000000000000000000000000000..3893d23231a97e1f864456d9ddfd75e93a859b9c --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/dao/BlogUserDao.java @@ -0,0 +1,11 @@ +package com.github.wxiaoqi.blog.admin.dao; + +import com.github.wxiaoqi.blog.admin.entity.BlogUser; +import com.github.wxiaoqi.blog.admin.repository.BaseRepository; + +/** + * + * @author colin + */ +public interface BlogUserDao extends BaseRepository { +} diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/Article.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/Article.java index 39183061de21fcdec9c3cdca57f318c9abeae75b..0db3a136993816da4ee348c22175b76793d07af0 100644 --- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/Article.java +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/Article.java @@ -3,6 +3,9 @@ package com.github.wxiaoqi.blog.admin.entity; import java.util.Date; import javax.persistence.*; +/** + * + */ @Table(name = "blog_article") public class Article { @Id diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/Blog.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/Blog.java new file mode 100644 index 0000000000000000000000000000000000000000..7b085d68b64b2a9f99754f9bb35c1110d16aa416 --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/Blog.java @@ -0,0 +1,85 @@ +package com.github.wxiaoqi.blog.admin.entity; + + +import javax.persistence.*; +import java.util.List; + +/** + * 博客 + * + * @author colin + */ +@Entity +//@Table(name = "ag_blog") jpa在构建表的时候会将驼峰转换成下划线,若不指定表明,则默认转换成表blog,字段也是一样的 +public class Blog { + + @Id + /** + * 使用主键自增长策略,我们自配置文件中配置了方言类型为 MySQL5InnoDBDialect,若使用默认的主键自增长策略AUTO,jpa会自动分配成SEQUENCE策略, + * 使用Mysql5Dialect时是mysql正常的IDENTITY策略 + */ + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + private String name; + + /** + * 手动设置数据库字段名称description、类型varchar、长度1000、默认值''、字段说明'这个是当前博客描述' + */ + @Column(name = "description",columnDefinition = "VARCHAR(1000) default '' comment '这个是当前博客描述'") + private String description; + + /** + * 字段名为user_id,下划线后面的是BlogUsers实体中设置@Id的字段 + * 通过OneToOne、ManyToOne在当前表生成外键和索引, OneToMany ManyToMany自动生成关系表并增加外键和索引 + * 注:外键和索引在InnoDB引擎下会生成 + */ + @ManyToOne(cascade = CascadeType.REFRESH) + private BlogUser user; + + /** + * 加载方式默认为LAZY懒加载,一个实体只有一个EAGER加载,否则报错 + */ + @ManyToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL) + private List articles; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BlogUser getUser() { + return user; + } + + public void setUser(BlogUser user) { + this.user = user; + } + + public List getArticles() { + return articles; + } + + public void setArticles(List articles) { + this.articles = articles; + } +} diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/BlogArticle.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/BlogArticle.java new file mode 100644 index 0000000000000000000000000000000000000000..f46b987d23cd651d0ab53b083579db27c032e979 --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/BlogArticle.java @@ -0,0 +1,45 @@ +package com.github.wxiaoqi.blog.admin.entity; + +import javax.persistence.*; + +/** + * 博客文章 + * + * @author colin + */ +@Entity +public class BlogArticle { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + private String title; + + @Column(columnDefinition = "TEXT") + private String content; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } +} diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/BlogUser.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/BlogUser.java new file mode 100644 index 0000000000000000000000000000000000000000..67b44be60168d7d1fd6e39270e81141428e34f94 --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/entity/BlogUser.java @@ -0,0 +1,91 @@ +package com.github.wxiaoqi.blog.admin.entity; + + +import javax.persistence.*; +import java.util.Date; + +/** + * 博主 + * + * @author colin + */ +@Entity +//@Table(name = "ag_blog_user") jpa在构建表的时候会将驼峰转换成下划线,若不指定表明,则默认转换成表blog_user,字段也是一样的 +public class BlogUser { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + private String name; + + private String phone; + + private String email; + + private Integer age; + + private String address; + + private Date crtTime; + + public BlogUser() { + this.crtTime = new Date(); + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public Date getCrtTime() { + return crtTime; + } + + public void setCrtTime(Date crtTime) { + this.crtTime = crtTime; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } +} diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/mapper/ArticleMapper.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/mapper/ArticleMapper.java index fab5e35a6cb7bd9e3ed4c6cee50a2378cdc9911c..e2f0df81a78d4921fee4766807b64fe40637ae03 100644 --- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/mapper/ArticleMapper.java +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/mapper/ArticleMapper.java @@ -1,6 +1,7 @@ package com.github.wxiaoqi.blog.admin.mapper; import com.github.wxiaoqi.blog.admin.entity.Article; +import org.springframework.stereotype.Repository; import tk.mybatis.mapper.common.Mapper; public interface ArticleMapper extends Mapper
{ diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/repository/BaseRepository.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/repository/BaseRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..971d94cbf1e668b3f50018a144513be3be0490d6 --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/repository/BaseRepository.java @@ -0,0 +1,14 @@ +package com.github.wxiaoqi.blog.admin.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.repository.NoRepositoryBean; + +import java.io.Serializable; + +/** + * Created by Administrator on 2017/3/13. + */ +@NoRepositoryBean +public interface BaseRepository extends JpaRepository,JpaSpecificationExecutor { +} diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/repository/BaseRepositoryFactoryBean.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/repository/BaseRepositoryFactoryBean.java new file mode 100644 index 0000000000000000000000000000000000000000..0d2c0e53724a6cb1c80110a5e534ad17d21a2419 --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/repository/BaseRepositoryFactoryBean.java @@ -0,0 +1,46 @@ +package com.github.wxiaoqi.blog.admin.repository; + +import com.github.wxiaoqi.blog.admin.repository.impl.BaseRepositoryImpl; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.support.JpaRepositoryFactory; +import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean; +import org.springframework.data.jpa.repository.support.SimpleJpaRepository; +import org.springframework.data.repository.core.RepositoryInformation; +import org.springframework.data.repository.core.RepositoryMetadata; +import org.springframework.data.repository.core.support.RepositoryFactorySupport; + +import javax.persistence.EntityManager; +import java.io.Serializable; + +/** + * Created by Administrator on 2017/3/13. + */ +public class BaseRepositoryFactoryBean,S,ID extends Serializable> extends JpaRepositoryFactoryBean { + + public BaseRepositoryFactoryBean(Class repositoryInterface) { + super(repositoryInterface); + } + + @Override + protected RepositoryFactorySupport createRepositoryFactory(EntityManager entityManager) { + return new BaseRepositoryFactory(entityManager); + } + + private static class BaseRepositoryFactory extends JpaRepositoryFactory { + public BaseRepositoryFactory(EntityManager entityManager){ + super(entityManager); + } + + @Override + @SuppressWarnings("{unchecked}") + protected SimpleJpaRepository getTargetRepository(RepositoryInformation information, EntityManager entityManager) { + return new BaseRepositoryImpl((Class) information.getDomainType(),entityManager); + } + + @Override + protected Class getRepositoryBaseClass(RepositoryMetadata metadata) { + return BaseRepositoryImpl.class; + } + } + +} diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/repository/impl/BaseRepositoryImpl.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/repository/impl/BaseRepositoryImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3e11c68dc466167f91d3737ae5ff97f6a9990fbc --- /dev/null +++ b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/repository/impl/BaseRepositoryImpl.java @@ -0,0 +1,24 @@ +package com.github.wxiaoqi.blog.admin.repository.impl; + +import com.github.wxiaoqi.blog.admin.repository.BaseRepository; +import org.springframework.data.jpa.repository.support.SimpleJpaRepository; +import org.springframework.data.repository.NoRepositoryBean; + +import javax.persistence.EntityManager; +import java.io.Serializable; + + +/** + * Created by Administrator on 2017/3/13. + */ +@NoRepositoryBean +public class BaseRepositoryImpl extends SimpleJpaRepository implements BaseRepository { + + private final EntityManager entityManager; + + public BaseRepositoryImpl(Class domainClass, EntityManager entityManager){ + super(domainClass,entityManager); + this.entityManager = entityManager; + } + +} diff --git a/ace-blog-parent/ace-blog-admin/src/main/resources/application.yml b/ace-blog-parent/ace-blog-admin/src/main/resources/application.yml index a1e7dbcd80eefcd35bee3884361b3d59f8043ee6..9ca4b148acb185feb9b073deb704b612dc743fc5 100644 --- a/ace-blog-parent/ace-blog-admin/src/main/resources/application.yml +++ b/ace-blog-parent/ace-blog-admin/src/main/resources/application.yml @@ -7,6 +7,14 @@ logging: spring: application: name: blog-admin + #jpa 配置 + jpa: + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL5InnoDBDialect #方言为InnoDB引擎的mysql,需指定引擎,InnoDB引擎支持数据回滚 + hibernate: + ddl-auto: update #启动时执行update表结构 + show-sql: true #显示sql jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 @@ -36,6 +44,8 @@ spring: poolPreparedStatements: true maxOpenPreparedStatements: 20 mybatis: + configuration: + map-underscore-to-camel-case: true #mybatis 驼峰转换,若使用org的mapper则可以一步配置,tk通用mapper测试无效 basepackage: com.github.wxiaoqi.blog.admin.mapper xmlLocation: classpath:mapper/**/*.xml diff --git a/ace-blog-parent/ace-blog-ui/pom.xml b/ace-blog-parent/ace-blog-ui/pom.xml index d1d2a0d438b23150a0d5fd4107ea4301166ebdef..f42f721a8a31b9f6f2399d7a3e7e4add15efffbb 100644 --- a/ace-blog-parent/ace-blog-ui/pom.xml +++ b/ace-blog-parent/ace-blog-ui/pom.xml @@ -5,7 +5,7 @@ ace-blog-parent org.springframework.boot - 1.4.2.RELEASE + 1.5.2.RELEASE 4.0.0 @@ -30,4 +30,5 @@ 1.9.22 + \ No newline at end of file diff --git a/ace-blog-parent/pom.xml b/ace-blog-parent/pom.xml index 9cff14187c1652a998f13ca92727cab264b48507..9f4e446c75a7cdd0203f089069d43c2b7a77de30 100644 --- a/ace-blog-parent/pom.xml +++ b/ace-blog-parent/pom.xml @@ -2,10 +2,11 @@ + org.springframework.boot spring-boot-starter-parent - 1.4.2.RELEASE + 1.5.2.RELEASE 4.0.0 pom @@ -34,7 +35,7 @@ org.springframework.cloud spring-cloud-dependencies - Camden.SR3 + Dalston.SR2 pom import