Commit 00fc326c authored by 覃振观's avatar 覃振观 👶

log4j2

parent 57f6e116
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<property name="jpaProperties"> <property name="jpaProperties">
<props> <props>
<prop key="hibernate.hbm2ddl.auto">none</prop> <prop key="hibernate.hbm2ddl.auto">none</prop>
<prop key="hibernate.show_sql">true</prop> <prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">true</prop> <prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.dialect">${system.hibernate.dialect}</prop> <prop key="hibernate.dialect">${system.hibernate.dialect}</prop>
<prop key="hibernate.enable_lazy_load_no_trans">true</prop> <prop key="hibernate.enable_lazy_load_no_trans">true</prop>
......
log4j.rootLogger=INFO, LogFileInfo, LogFileError, LogConsole,stdout #log4j.rootLogger=INFO, LogFileInfo, LogFileError, LogConsole,stdout
log4j.appender.LogFileInfo = org.apache.log4j.DailyRollingFileAppender #
log4j.appender.LogFileInfo.file = /var/project/log/Info.log #log4j.appender.LogFileInfo = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LogFileInfo.DatePattern = '.'yyyy-MM-dd #log4j.appender.LogFileInfo.file = /var/project/log/Info.log
log4j.appender.LogFileInfo.layout = org.apache.log4j.PatternLayout #log4j.appender.LogFileInfo.DatePattern = '.'yyyy-MM-dd
log4j.appender.LogFileInfo.layout.ConversionPattern = [%p] <%d{yyyy-MM-dd HH:mm:ss:SSS}> %C{1}::%M: %m%n #log4j.appender.LogFileInfo.layout = org.apache.log4j.PatternLayout
log4j.appender.LogFileInfo.threshold=INFO #log4j.appender.LogFileInfo.layout.ConversionPattern = [%p] <%d{yyyy-MM-dd HH:mm:ss:SSS}> %C{1}::%M: %m%n
#log4j.appender.LogFileInfo.threshold=INFO
#
log4j.appender.LogFileError = org.apache.log4j.DailyRollingFileAppender #
log4j.appender.LogFileError.file = /var/project/log/Error.log #log4j.appender.LogFileError = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LogFileError.DatePattern = '.'yyyy-MM-dd #log4j.appender.LogFileError.file = /var/project/log/Error.log
log4j.appender.LogFileError.layout = org.apache.log4j.PatternLayout #log4j.appender.LogFileError.DatePattern = '.'yyyy-MM-dd
log4j.appender.LogFileError.layout.ConversionPattern = [%p] <%d{yyyy-MM-dd HH:mm:ss:SSS}> %C{1}::%M: %m%n #log4j.appender.LogFileError.layout = org.apache.log4j.PatternLayout
log4j.appender.LogFileError.threshold=ERROR #log4j.appender.LogFileError.layout.ConversionPattern = [%p] <%d{yyyy-MM-dd HH:mm:ss:SSS}> %C{1}::%M: %m%n
#log4j.appender.LogFileError.threshold=ERROR
log4j.appender.LogConsole = org.apache.log4j.ConsoleAppender #
log4j.appender.LogConsole.layout = org.apache.log4j.PatternLayout #log4j.appender.LogConsole = org.apache.log4j.ConsoleAppender
log4j.appender.LogConsole.layout.conversionPattern = [%p] <%d{yyyy-MM-dd HH:mm:ss:SSS}> %C{1}::%M: %m%n #log4j.appender.LogConsole.layout = org.apache.log4j.PatternLayout
log4j.appender.LogConsole.threshold=INFO #log4j.appender.LogConsole.layout.conversionPattern = [%p] <%d{yyyy-MM-dd HH:mm:ss:SSS}> %C{1}::%M: %m%n
#log4j.appender.LogConsole.threshold=INFO
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender #
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout ##log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n ##log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.LogConsole.Threshold=INFO ##log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
##log4j.appender.LogConsole.Threshold=INFO
#log4j.logger.org.hibernate=debug #
#log4j.logger.org.hibernate.hql.ast.AST=debug ##log4j.logger.org.hibernate=debug
##log4j.logger.org.hibernate.hql.ast.AST=debug
log4j.logger.org.hibernate=info #
#log4j.logger.org.hibernate.hql.ast.AST=info #log4j.logger.org.hibernate=info
##log4j.logger.org.hibernate.hql.ast.AST=info
#this is the most important config for showing parames like ? #
log4j.logger.org.hibernate.SQL=trace ##this is the most important config for showing parames like ?
log4j.logger.org.hibernate.type=trace #log4j.logger.org.hibernate.SQL=trace
#above two configs #log4j.logger.org.hibernate.type=trace
#log4j.logger.org.hibernate.tool.hbm2ddl=debug # #above two configs
log4j.logger.org.hibernate.hql=info ##log4j.logger.org.hibernate.tool.hbm2ddl=debug
#log4j.logger.org.hibernate.cache=debug
#log4j.logger.org.hibernate.tool.hbm2ddl=info
#log4j.logger.org.hibernate.hql=info #log4j.logger.org.hibernate.hql=info
#log4j.logger.org.hibernate.cache=info ##log4j.logger.org.hibernate.cache=debug
#
log4j.logger.org.hibernate.transaction=debug ##log4j.logger.org.hibernate.tool.hbm2ddl=info
log4j.logger.org.hibernate.jdbc=debug ##log4j.logger.org.hibernate.hql=info
##log4j.logger.org.hibernate.cache=info
#log4j.logger.org.hibernate.transaction=info #
#log4j.logger.org.hibernate.jdbc=info #log4j.logger.org.hibernate.transaction=debug
#log4j.logger.org.hibernate.jdbc=debug
#og4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace #
#log4j.logger.jdbc.sqlonly=INFO,LogConsole
#log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE #log4j.additivity.jdbc.sqlonly=true
log4j.logger.log4j.loggingInInterceptor=INFO,log4jFile,LogConsole #log4j.logger.jdbc.sqltiming=OFF
log4j.logger.log4j.loggingOutInterceptor=INFO,log4jFile,LogConsole #log4j.logger.jdbc.audit=OFF
log4j.additivity.log4j.loggingInInterceptor=false #log4j.logger.jdbc.resultset=OFF
log4j.additivity.log4j.loggingOutInterceptor=false #log4j.logger.jdbc.connection=OFF
log4j.appender.log4jFile=org.apache.log4j.DailyRollingFileAppender #
log4j.appender.log4jFile.File=/var/project/log/log4j.log #log4jdbc.trim.sql=true
log4j.appender.log4jFile.ImmediateFlush=true #log4jdbc.trim.sql.extrablanklines=true
log4j.appender.log4jFile.Threshold=INFO #log4jdbc.suppress.generated.keys.exception=false
log4j.appender.log4jFile.Append=true #
log4j.appender.log4jFile.DatePattern='.'yyyy-MM-dd-a ##log4j.logger.org.hibernate.transaction=info
log4j.appender.log4jFile.layout=org.apache.log4j.PatternLayout ##log4j.logger.org.hibernate.jdbc=info
log4j.appender.log4jFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss, SSS}-%t-%x-%-5p-%-10c:%m%n #
##og4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
log4j.logger.cz.vutbr.web.csskit.antlr4.SimplePreparator=OFF #
\ No newline at end of file ##log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
#log4j.logger.log4j.loggingInInterceptor=INFO,log4jFile,LogConsole
#log4j.logger.log4j.loggingOutInterceptor=INFO,log4jFile,LogConsole
#log4j.additivity.log4j.loggingInInterceptor=false
#log4j.additivity.log4j.loggingOutInterceptor=false
#log4j.appender.log4jFile=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.log4jFile.File=/var/project/log/log4j.log
#log4j.appender.log4jFile.ImmediateFlush=true
#log4j.appender.log4jFile.Threshold=INFO
#log4j.appender.log4jFile.Append=true
#log4j.appender.log4jFile.DatePattern='.'yyyy-MM-dd-a
#log4j.appender.log4jFile.layout=org.apache.log4j.PatternLayout
#log4j.appender.log4jFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss, SSS}-%t-%x-%-5p-%-10c:%m%n
#
#log4j.logger.cz.vutbr.web.csskit.antlr4.SimplePreparator=OFF
\ No newline at end of file
...@@ -7,6 +7,11 @@ ...@@ -7,6 +7,11 @@
<param-name>contextConfigLocation</param-name> <param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value> <param-value>classpath:applicationContext.xml</param-value>
</context-param> </context-param>
<context-param>
<param-name>log4jConfiguration</param-name>
<param-value>classpath:config/spring/spring-log4j2.xml</param-value>
</context-param>
<!-- The filter-name matches name of a 'shiroFilter' bean inside applicationContext.xml --> <!-- The filter-name matches name of a 'shiroFilter' bean inside applicationContext.xml -->
<filter> <filter>
<filter-name>shiroFilter</filter-name> <filter-name>shiroFilter</filter-name>
...@@ -152,6 +157,24 @@ ...@@ -152,6 +157,24 @@
<servlet-name>springMVC</servlet-name> <servlet-name>springMVC</servlet-name>
<url-pattern>*.print</url-pattern> <url-pattern>*.print</url-pattern>
</servlet-mapping> </servlet-mapping>
<!-- &lt;!&ndash;log4j2 &ndash;&gt;-->
<listener>
<listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>
<filter>
<filter-name>log4jServletFilter</filter-name>
<filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>log4jServletFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
<!--SpringMVC中获取request对象 --> <!--SpringMVC中获取request对象 -->
<listener> <listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
......
...@@ -140,12 +140,6 @@ ...@@ -140,12 +140,6 @@
<version>5.1.0.Final</version> <version>5.1.0.Final</version>
</dependency> </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>
<dependency> <dependency>
<groupId>org.mongodb</groupId> <groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId> <artifactId>mongo-java-driver</artifactId>
...@@ -365,6 +359,40 @@ ...@@ -365,6 +359,40 @@
<version>5.8.16</version> <version>5.8.16</version>
</dependency> </dependency>
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.22.1</version>
</dependency>
<!--web工程需要包含log4j-web,非web工程不需要-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.4.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>2.0.9</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
......
pub.db.url=jdbc:mysql://192.168.3.91:3406/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false #pub.db.url=jdbc:mysql://192.168.222.122:3406/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
pub.db.user=root #pub.db.user=root
pub.db.password=123456 #pub.db.password=123456
#
log.db.url=jdbc:mysql://192.168.3.91:3406/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false #log.db.url=jdbc:mysql://192.168.222.122:3406/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
log.db.user=root #log.db.user=root
log.db.password=123456 #log.db.password=123456
#
hana.db.url=jdbc:mysql://192.168.3.91:3406/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false #hana.db.url=jdbc:mysql://192.168.222.122:3406/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
hana.db.user=root #hana.db.user=root
hana.db.password=123456 #hana.db.password=123456
#hana.db.url=jdbc:mysql://127.0.0.1:3306/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false #hana.db.url=jdbc:mysql://127.0.0.1:3306/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
#hana.db.user=topsun #hana.db.user=topsun
#hana.db.password=topsun #hana.db.password=topsun
#pub.db.url=jdbc:mysql://127.0.0.1:3306/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false pub.db.url=jdbc:log4jdbc:mysql://127.0.0.1:3306/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
#pub.db.user=topsun pub.db.user=root
#pub.db.password=topsun pub.db.password=root
#
#log.db.url=jdbc:mysql://127.0.0.1:3306/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false log.db.url=jdbc:log4jdbc:mysql://127.0.0.1:3306/topsun?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
#log.db.user=topsun log.db.user=root
#log.db.password=topsun log.db.password=root
shiro.host=127.0.0.1 shiro.host=127.0.0.1
shiro.port=6379 shiro.port=6379
...@@ -29,6 +29,7 @@ shiro.port=6379 ...@@ -29,6 +29,7 @@ shiro.port=6379
shiro.expire=1800000 shiro.expire=1800000
system.dataSource=dataSource system.dataSource=dataSource
system.dataSource.driverClassName=net.sf.log4jdbc.DriverSpy
system.hibernate.dialect=com.huigou.data.dialect.MySQL5InnoDBDialect system.hibernate.dialect=com.huigou.data.dialect.MySQL5InnoDBDialect
sqlDialect=mysql sqlDialect=mysql
...@@ -71,3 +72,5 @@ icon.cssFile=themes/fontawesome/css/font-awesome.min.css ...@@ -71,3 +72,5 @@ icon.cssFile=themes/fontawesome/css/font-awesome.min.css
org.forceGenerateIdentifier=true org.forceGenerateIdentifier=true
#log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
...@@ -162,6 +162,24 @@ ...@@ -162,6 +162,24 @@
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
......
...@@ -61,8 +61,21 @@ public class ProductApplicationImpl extends BaseApplication implements ProductAp ...@@ -61,8 +61,21 @@ public class ProductApplicationImpl extends BaseApplication implements ProductAp
@Override @Override
public ArrayList<Map<String, Object>> findProductPage(int page, int size) { public ArrayList<Map<String, Object>> findProductPage(int page, int size) {
ArrayList<Product> productPage = (ArrayList<Product>) productRepository.findAll(); System.out.println("GG");
return objectMapper.convertValue(productPage, new TypeReference<ArrayList<Map<String, Object>>>() {});
EntityGraph<Product> entityGraph = entityManager.createEntityGraph(Product.class);
// entityGraph.addAttributeNodes("productDetail");
List<Product> product3 = entityManager.createQuery("select p from Product p", Product.class)
.setHint("javax.persistence.fetchgraph", entityGraph)
.getResultList();
EntityGraph<ProductDetail>
entityGraph2 = entityManager.createEntityGraph(ProductDetail.class);
List<ProductDetail> productDetail = entityManager.createQuery("select p from ProductDetail p", ProductDetail.class)
.setHint("javax.persistence.fetchgraph", entityGraph2)
.getResultList();
return objectMapper.convertValue(product3, new TypeReference<ArrayList<Map<String, Object>>>() {});
} }
/** /**
...@@ -84,7 +97,7 @@ public class ProductApplicationImpl extends BaseApplication implements ProductAp ...@@ -84,7 +97,7 @@ public class ProductApplicationImpl extends BaseApplication implements ProductAp
Map<String, Object> resultMap = new HashMap<>(200); Map<String, Object> resultMap = new HashMap<>(200);
BigDecimal productId = product.getProductId(); BigDecimal productId = product.getProductId();
ProductDetail productDetail = detailRepository.findByProductId(productId); ProductDetail productDetail = detailRepository.findByProduct_ProductId(productId);
ProductTechnology productTechnology = technologyRepository.findByProductId(productId); ProductTechnology productTechnology = technologyRepository.findByProductId(productId);
// --------------------------------- 类别查询 --------------------------------- // --------------------------------- 类别查询 ---------------------------------
......
package com.huigou.topsun.product.domain; package com.huigou.topsun.product.domain;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
...@@ -11,6 +12,7 @@ import org.apache.commons.lang.builder.HashCodeBuilder; ...@@ -11,6 +12,7 @@ import org.apache.commons.lang.builder.HashCodeBuilder;
import javax.persistence.*; import javax.persistence.*;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* @author YourUserName * @author YourUserName
...@@ -22,10 +24,6 @@ import java.math.BigDecimal; ...@@ -22,10 +24,6 @@ import java.math.BigDecimal;
@Table(name = "product") @Table(name = "product")
public class Product implements Serializable { public class Product implements Serializable {
// @OneToOne(mappedBy = "product")
@Transient
private ProductDetail productDetail;
/** /**
* 产品ID * 产品ID
*/ */
...@@ -162,18 +160,19 @@ public class Product implements Serializable { ...@@ -162,18 +160,19 @@ public class Product implements Serializable {
@Column(name = "file_no", nullable = true, length = 255) @Column(name = "file_no", nullable = true, length = 255)
private String fileNo; private String fileNo;
public ProductDetail getProductDetail() { @JsonIgnore
return productDetail; @OneToOne(mappedBy = "product", optional = false, fetch = FetchType.LAZY)
} private ProductDetail productDetail;
public void setProductDetail(ProductDetail productDetail) { @JsonIgnore
this.productDetail = productDetail; @OneToMany(fetch = FetchType.LAZY)
} @JoinColumn(name = "product_id", insertable = false, updatable = false)
private List<ProductLoss> lossList;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o) { return true; }
if (o == null || getClass() != o.getClass()) return false; if (o == null || getClass() != o.getClass()) { return false; }
Product product = (Product) o; Product product = (Product) o;
return new EqualsBuilder().append(productId, product.productId).append(productName, product.productName).append(productCategoryId, product.productCategoryId).append(productStatus, product.productStatus).append(productUnit, product.productUnit).append(productSampleCode, product.productSampleCode).append(brandName, product.brandName).append(productType, product.productType).append(productCode, product.productCode).append(productSizeGroupId, product.productSizeGroupId).append(isOnlyCode, product.isOnlyCode).append(isBodyColor, product.isBodyColor).append(isDisable, product.isDisable).append(isBuildBom, product.isBuildBom).append(confirmDate, product.confirmDate).append(comfirmPerson, product.comfirmPerson).append(isFreeInspection, product.isFreeInspection).append(isNoQualityLoss, product.isNoQualityLoss).append(sampleOrderNo, product.sampleOrderNo).append(stockNo, product.stockNo).append(stockName, product.stockName).append(fileNo, product.fileNo).isEquals(); return new EqualsBuilder().append(productId, product.productId).append(productName, product.productName).append(productCategoryId, product.productCategoryId).append(productStatus, product.productStatus).append(productUnit, product.productUnit).append(productSampleCode, product.productSampleCode).append(brandName, product.brandName).append(productType, product.productType).append(productCode, product.productCode).append(productSizeGroupId, product.productSizeGroupId).append(isOnlyCode, product.isOnlyCode).append(isBodyColor, product.isBodyColor).append(isDisable, product.isDisable).append(isBuildBom, product.isBuildBom).append(confirmDate, product.confirmDate).append(comfirmPerson, product.comfirmPerson).append(isFreeInspection, product.isFreeInspection).append(isNoQualityLoss, product.isNoQualityLoss).append(sampleOrderNo, product.sampleOrderNo).append(stockNo, product.stockNo).append(stockName, product.stockName).append(fileNo, product.fileNo).isEquals();
} }
...@@ -183,6 +182,22 @@ public class Product implements Serializable { ...@@ -183,6 +182,22 @@ public class Product implements Serializable {
return new HashCodeBuilder(17, 37).append(productId).append(productName).append(productCategoryId).append(productStatus).append(productUnit).append(productSampleCode).append(brandName).append(productType).append(productCode).append(productSizeGroupId).append(isOnlyCode).append(isBodyColor).append(isDisable).append(isBuildBom).append(confirmDate).append(comfirmPerson).append(isFreeInspection).append(isNoQualityLoss).append(sampleOrderNo).append(stockNo).append(stockName).append(fileNo).toHashCode(); return new HashCodeBuilder(17, 37).append(productId).append(productName).append(productCategoryId).append(productStatus).append(productUnit).append(productSampleCode).append(brandName).append(productType).append(productCode).append(productSizeGroupId).append(isOnlyCode).append(isBodyColor).append(isDisable).append(isBuildBom).append(confirmDate).append(comfirmPerson).append(isFreeInspection).append(isNoQualityLoss).append(sampleOrderNo).append(stockNo).append(stockName).append(fileNo).toHashCode();
} }
public ProductDetail getProductDetail() {
return productDetail;
}
public void setProductDetail(ProductDetail productDetail) {
this.productDetail = productDetail;
}
public List<ProductLoss> getLossList() {
return lossList;
}
public void setLossList(List<ProductLoss> lossList) {
this.lossList = lossList;
}
public BigDecimal getProductId() { public BigDecimal getProductId() {
return this.productId; return this.productId;
} }
......
package com.huigou.topsun.product.domain; package com.huigou.topsun.product.domain;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.huigou.topsun.common.NumberToStringSerializer; import com.huigou.topsun.common.NumberToStringSerializer;
import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.hibernate.annotations.Formula;
import javax.persistence.*; import javax.persistence.*;
import java.io.Serializable; import java.io.Serializable;
...@@ -21,10 +23,6 @@ import java.math.BigDecimal; ...@@ -21,10 +23,6 @@ import java.math.BigDecimal;
@Table(name = "product_detail") @Table(name = "product_detail")
public class ProductDetail implements Serializable { public class ProductDetail implements Serializable {
// @OneToOne
// @JoinColumn(name = "product_id", nullable = false)
// private Product product;
/** /**
* 产品详细信息ID * 产品详细信息ID
*/ */
...@@ -33,13 +31,6 @@ public class ProductDetail implements Serializable { ...@@ -33,13 +31,6 @@ public class ProductDetail implements Serializable {
@Column(name = "product_detail_id", nullable = false) @Column(name = "product_detail_id", nullable = false)
private BigDecimal productDetailId; private BigDecimal productDetailId;
/**
* 产品ID
*/
@JsonSerialize(using = NumberToStringSerializer.class)
@Column(name = "product_id", nullable = true)
private BigDecimal productId;
/** /**
* 工厂名称 * 工厂名称
*/ */
...@@ -130,10 +121,23 @@ public class ProductDetail implements Serializable { ...@@ -130,10 +121,23 @@ public class ProductDetail implements Serializable {
@Column(name = "specification_no", nullable = true, length = 32) @Column(name = "specification_no", nullable = true, length = 32)
private String specificationNo; private String specificationNo;
/**
* 产品ID
*/
@JsonSerialize(using = NumberToStringSerializer.class)
@Formula("(SELECT d.product_id FROM product_detail d WHERE d.product_detail_id = product_detail_id)")
private BigDecimal productId;
@JsonIgnore
@MapsId
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "product_id", nullable = false, insertable = false, updatable = false)
private Product product;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o) { return true; }
if (o == null || getClass() != o.getClass()) return false; if (o == null || getClass() != o.getClass()) { return false; }
ProductDetail that = (ProductDetail) o; ProductDetail that = (ProductDetail) o;
return new EqualsBuilder().append(productDetailId, that.productDetailId).append(productId, that.productId).append(factoryName, that.factoryName).append(productLayout, that.productLayout).append(productEnglishName, that.productEnglishName).append(productShortName, that.productShortName).append(backProductFaceId, that.backProductFaceId).append(rightProductFaceId, that.rightProductFaceId).append(productSubstrate, that.productSubstrate).append(materialCode, that.materialCode).append(productCode, that.productCode).append(productEnCode, that.productEnCode).append(bodyColor, that.bodyColor).append(customerMaterialCode, that.customerMaterialCode).append(versionNo, that.versionNo).append(isNewSpecification, that.isNewSpecification).append(specificationNo, that.specificationNo).isEquals(); return new EqualsBuilder().append(productDetailId, that.productDetailId).append(productId, that.productId).append(factoryName, that.factoryName).append(productLayout, that.productLayout).append(productEnglishName, that.productEnglishName).append(productShortName, that.productShortName).append(backProductFaceId, that.backProductFaceId).append(rightProductFaceId, that.rightProductFaceId).append(productSubstrate, that.productSubstrate).append(materialCode, that.materialCode).append(productCode, that.productCode).append(productEnCode, that.productEnCode).append(bodyColor, that.bodyColor).append(customerMaterialCode, that.customerMaterialCode).append(versionNo, that.versionNo).append(isNewSpecification, that.isNewSpecification).append(specificationNo, that.specificationNo).isEquals();
} }
...@@ -143,6 +147,14 @@ public class ProductDetail implements Serializable { ...@@ -143,6 +147,14 @@ public class ProductDetail implements Serializable {
return new HashCodeBuilder(17, 37).append(productDetailId).append(productId).append(factoryName).append(productLayout).append(productEnglishName).append(productShortName).append(backProductFaceId).append(rightProductFaceId).append(productSubstrate).append(materialCode).append(productCode).append(productEnCode).append(bodyColor).append(customerMaterialCode).append(versionNo).append(isNewSpecification).append(specificationNo).toHashCode(); return new HashCodeBuilder(17, 37).append(productDetailId).append(productId).append(factoryName).append(productLayout).append(productEnglishName).append(productShortName).append(backProductFaceId).append(rightProductFaceId).append(productSubstrate).append(materialCode).append(productCode).append(productEnCode).append(bodyColor).append(customerMaterialCode).append(versionNo).append(isNewSpecification).append(specificationNo).toHashCode();
} }
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public BigDecimal getProductDetailId() { public BigDecimal getProductDetailId() {
return this.productDetailId; return this.productDetailId;
} }
......
...@@ -11,5 +11,7 @@ import java.math.BigDecimal; ...@@ -11,5 +11,7 @@ import java.math.BigDecimal;
* @Description: * @Description:
*/ */
public interface ProductDetailRepository extends JpaRepository<ProductDetail,String> { public interface ProductDetailRepository extends JpaRepository<ProductDetail,String> {
ProductDetail findByProductId(BigDecimal productId); ProductDetail findByProduct_ProductId(BigDecimal productId);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment