發表文章

目前顯示的是 3月, 2015的文章

IWAB0503E Unable to update Java build path. Please check your system environment. java.io.FileNotFoundException: /lib/saaj.jar 解決辦法

圖片
這是 用 eclpse STS 的 BUG 主要是 soap 1.3 plugin 忘了放 /saaj.jar 先到 ecplse/plugin 目錄下 找到 javax.xml.soap_1.2.0xxxxxxxxx 目錄如下圖所示 然後將裡面的 lib 目錄複製出來 然後貼到 javax.xml.soap_1.3.0xxxxxxxxx  目錄下 然後重啟STS 就可以用 WebServices Client 了!!!

JPA entity 使用繼承關係時,發生 Cannot use identity column key generation with mapping for: {class xxxx} 如何解決

先定義Root(父類) 的表如下 @SuppressWarnings("serial") @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class AbsEnum implements Serializable { private Integer id; private String name; private String enName; private Integer operatorId; private Date updatedAt; @Id @Column(nullable = false , columnDefinition = JpaConstant.COLUMN_DEFIN_ID) @GeneratedValue(strategy = GenerationType.TABLE) 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 getEnName() { return enName; } public void setEnName( String enName) { this .enName = enName; } public Integer getOperatorId() { return operatorId; } public void setOperatorId( Integer operatorId) { this .operatorId = operatorId; } public Da

Java8 Pratice - Lambda -2 functional interface

先來一個簡單可以執行的範例如下 Parse.java package com . kirin . java8 . lambada ; public interface Parse { public void showLineNumber( int count); } DocParser.java package com . kirin . java8 . lambada ; import java . util . ArrayList ; import java . util . List ; public class DocParser { private List < String > docLines = new ArrayList< String >(); public void showLineNumber(Parse p){ p.showLineNumber(docLines.size()); } } TestMain.java package com . kirin . java8 . lambada ; public class TestMain { public static void main( String [] args){ DocParser tc = new DocParser(); tc.showLineNumber(i-> System .out.println("Number is"+ i)); //A } } 在A列中可以用lamda 執行 此方法,那麼如果我們在 Parse 增加了另一個方法會發生什麼事情如下 Parse.java package com . kirin . java8 . lambada ; import java . util . List ; public interface Parse { public void showLineNumber( int count); public void showDocSize( List < String >

Java8 Pratice - Lambda -1

先用最簡單的 Runnable 做表示,再Lambda 可以表示成以下 package com.kirin.java8; public class TestMain { private Runnable runnable; public void setInterface(Runnable r){ this.runnable = r; } public static void main(String[] args){ Runnable r = () -> System.out.println("Hi~"); // A r = () ->{ // B System.out.println("v"); System.out.println("vc"); }; TestMain tm = new TestMain(); tm.setInterface(() -> System.out.println("Hi~")); //C } } A : () <= 代表是 發法中的參數,因為是 runnable 所以參數是空的 B : 如果想要寫多行程式碼 C : 可以直接在參數內實作 上述第C點,如果在 TestMain 如果有第2個參數為空的interface,就會有問題, 如下 package com.kirin.java8; public class TestMain { private Runnable runnable; private OtherInter otherInter; public void setInterface(Runnable r){ this.runnable = r; } public void setInterface(OtherInter oi){ this.otherInter = oi; } public static void main(String[] args){ TestMain tm = new TestMain(); tm.setInterface(() -> System.out.pr